MySql学习笔记02
MySql02
复习
数据库相关
连接数据库的命令
mysql -uroot -p
创建数据库
create database db2;
查询所有的数据库
show databases;
查询单个数据库的信息
show create database db2;
删除数据库
drop database db2;
创建数据库时指定字符集
create database db2 character set utf8;
使用数据库
use db2;
表相关的SQL
创建表student
));
查看所有的表
show tables;
查看表属性 数据库表的引擎 和 编码
show create table student;
查看表结构
desc student;
创建表 指定引擎和编码
)) engine=innodb charset=utf8;
修改表的名字
rename table student to stu;
给表添加字段
-在最后
alter table stu add age int;
-在最前端添加
alter table stu add age int first;
-在某个字段的后面
alter table stu add age int after id;
删除表字段
alter table stu drop age;
修改表的属性
alter table stu engine=myisam charset=utf8;
修改字段的名称和类型
alter table stu change age fatherAge int;
修改字段的类型和位置
alter table stu modify fatherAge double after name;
删除表
drop table stu;
数据相关
-创建商品表:
create table t_item( id int, title ), num int, price double, category ), createDate date );
插入数据 -全表插入 insert into t_item values(1,'毛巾',89,4.5,'日用品','1985-06-23'); -指定字段插入
insert into t_item (title,price,category) values ('香皂',1.5,'日用品');
-批量插入数据
insert into t_item values (,,,'电脑配件','2008-12-21'), (,,,'电脑配件','2018-11-25'), (,,,'电脑配件','2006-10-28');
修改数据
update t_item set title='双飞燕鼠标' where title='鼠标';
-修改多条数据
where title='双飞燕鼠标';
删除数据
delete from t_item where id is null; delete from t_item where title='键盘';
查询数据
-查询sql 后面也可以添加where 条件
select title from t_item where category='日用品';
练习:
1.创建newdb数据库创建表emp(员工表)字段有:id name、salary(工资)、dept(部门名称)、joinDate(入职日期)
), salary ), joinDate date );
2.插入刘关张和唐僧四人组 7个人 刘关张部门为:三国部 唐僧它们部门为取经部
,,,,,,,,,,,,,,'取经部','2007-12-10')
3.修改刘备的工资为2000
;
4.修改唐僧名称为唐长老
;
5.给表添加一个年龄字段 在name字段的后面
alter table emp add age int after name;
6.修改三国部的年龄为45
where dept='三国部';
7.修改取经部的日期为今天日期
update emp set joinDate='2018-2-26' where dept='取经部';
8.修改工资小于5000的年龄为18 update emp set age=18 where salary<5000; 9.删除三国部门所有员工 delete from emp where dept='三国部'; 10.删除全表
delete from emp; drop table emp;
eclipse自定义代码块 自定义模板代码
-添加方式:window->最后一个->data management->sql Develepment->sql Editor->templates->new
name:是简化后的代码
description:描述
pattern:简化前的代码
应用场景:代码比较复杂 并且频繁使用的时候可用自定义代码块
主键及自增
每一张表通常会有一个且只有一个主键 来表示每条数据的唯一性
主键其实是对某一个字段的 约束
-主键特性:1.值不能重复 2.非空(不能赋值为null)
-主键约束写法:
create table student (id int primary key,age int);
-主键+自增的写法:
create table student (id int primary key auto_increment,age int);
非空
-非空约束 not null
create table student (id int primary key auto_increment, age int not null);
表字段的注释
-表字段的注释关键字:comment
create table user ( id int comment '用户的id', age int comment '用户的年龄' );
单引号和`的区别
单引号:用于给字符串赋值
`:用于给表名 和 字段名赋值 可以省略不写
表设计
-在设计表字段的时候,如果某个字段有可能出现大量的重复(称为数据冗余),需要把该字段单独提出创建一张新表,把可能重复的放到新表内,在原表只需要使用新表的id即可
练习:
-创建员工表(emp) 和 部门表(dept) 分别在两个表中插入几条数据 id要进行主键约束并且自增 部门名称不能为null
create table emp ( id int primary key auto_increment, name ), detpId int, joinDate date );
create table dept ( id int primary key auto_increment, name ) not null );
insert into dept (name) values ('财务');
insert into dept (name) values ('市场');
),(),(),();
事务
-事务是数据库中的执行单元
-事务能够保证事务内部的sql语句要么都成功,要么都失败
-mysql 客户端(终端、命令行)事务是默认提交的
-修改mysql事务的自动提交
-查看当前数据库是否自动提交事务
show variables like '%autocommit%';
-给自动提交参数赋值为0 是关闭 1是开启
;
-演示事务:
创建User表 有id 和money字段
插入一条数据 id=1 money=100;
1.开启两个终端A、B,在A里面 执行
;
然后修改表中的某个数据
此时去B终端查看,因为A开启了事务此时并没有提交,则A的操作是在内存中操作所以此时B终端看不到数据的改变,直到A执行Commit才把内存中的操作执行到数据库,如果在执行Commit之前执行了Rollback 则A窗口 会回到修改之前的状态
begin:开启事务
commit:提交事务
rollback:回滚
SQL分类
数据定义语言 DDL
data Definition language -DDL不支持事务 不能回滚 常见命令有: create alter drop
数据操纵语言 DML
Data Manipulation Language -DDL支持事务 常见命令:insert update delete select属于DML
数据查询语言 DQL
Data Query Language select 是最常用的命令 面试问的最多
TCL
Trainsaction Control Language 事务控制语言 常见命令:begin commit rollback
DCL
Data Control Language 数据控制语言
数据库数据类型
整数
-常用类型为 int(m) bigint(m) -m代表显示的位数 意思是当显示的数据不足m值时在前面补0,前提是必须在字段的声明后面添加zerofill
) zerofill);
注意:有个别公司把这个m 当成数据长度来用
浮点数
float(m,d): 不常用 double(m,d):比float精度高 decimal(m,d):比double精度还要高好多 m代表总长度,的代表小数的位数
当涉及到钱的时候需要用到高精度的类型 会使用decimal
字符串
varchar(20) :可变长度 执行效率低 节省空间 abc 3 :65535 但是建议不超过255如果文本超过255则建议使用text char(20) :固定长度 执行效率高 占空间大 abc 20 长度255 text:长度可变最大65535
日期
date:只能保存日期 time:只能保存时间 datetime:保存日期+时间 如果不赋值默认值为null,最大值9999-12-31 timestamp:保存日期+时间 如果不赋值默认为当前时间,最大值2038-01-19 因为timestamp有默认值当前时间所以平时使用较多
案例:创建表t,字段d1 date,d2 time,d3 datetime,d4 timestamp
create table t (d1 date,d2 time,d3 datetime, d4 timestamp); insert into t (d1,d2) values ('2018-12-21','12:22:38'); insert into t values ('2018-12-21','12:22:38','9898-12-10 12:06:38','2028-05-06 11:11:11');
timestamp如果插入数据超出取值范围则报错
回顾
1.主键 primary key 唯一 不能为null
2.自增 auto_increment
3.非空 not null
4.注释 comment
5.'区别
字段名和表名 '字符串的值的时候
6.事务 数据库的执行单元
7.begin 开启事务 commit 提交事务 rollback 回滚事务 查看当前数据库是否自动提交 show variables like '%autocommit%'; 关闭自动提交 开启为1 set autocommit=0;
8.SQL分类 ddl 数据定义语言 不支持事务 create drop alter dml 数据操作语言 支持事务 insert update delete select(也属于dql) dql 数据查询语言 select tcl 事务控制语言 begin commit rollback dcl 数据控制语言 控制权限分配
9.数据类型 整数:int bigint 浮点数:float double decimal(m,d) m总长度 d小数点后面的位数 字符串: char(20) varchar(20) text char 固定长度 text长度65535 日期:date time datetime timestamp
作业: 创建 员工表 emp 部门表 dept
商品表 t_item 商品分类 t_item_category
MySql学习笔记02的更多相关文章
- Mysql 学习笔记02
14 mysql 的常见函数 数学函数 1 abs() 函数 ,返回绝对值 2 bin() 函数 ,返回数值的二进制数值 3 hex()函数 ,返回数值的十六进制的值 4 floor()函数 ,对小 ...
- 【11-23】mysql学习笔记02
SQL的历史 SQL是Structed Query Language 的缩写,即”结构化查询语言” SQL原名是 sequel,后来由于法律原因,改名 SQL最早可以追溯到 1974 年,源于 IBM ...
- mysql学习笔记02 CRUD操作
添加数据insert into 表名(字段列表) values(对应字段的列表值) 查询数据 select *from 表名 where 条件select *from 表名 where 1条件 1表示 ...
- mysql学习笔记02 表的操作
创建数据表create table table_name(//定义表的列的结构)创建表 先分析需要保存的实体数据,荣有哪些属性,这些属性应该有哪些属性列的定义 列名 列的数据类型 {} 进行表操作时 ...
- MySql学习笔记(一)之DQL常用查询
MySql学习笔记(一)之DQL常用查询 前言:mysql是中小型的数据库软件,SQL语言分为DDL,DCL,DML,DQL四种,在这里重点讲解DQL的单表查询. 正文:在学习mysql单表查询之前, ...
- mysql basic operation,mysql总结,对mysql经常使用语句的详细总结,MySQL学习笔记
mysql> select * from wifi_data where dev_id like "0023-AABBCCCCBBAA" ; 1.显示数据库列表.show d ...
- 软件测试之loadrunner学习笔记-02集合点
loadrunner学习笔记-02集合点 集合点函数可以帮助我们生成有效可控的并发操作.虽然在Controller中多用户负载的Vuser是一起开始运行脚本的,但是由于计算机的串行处理机制,脚本的运行 ...
- Mysql学习笔记(三)对表数据的增删改查。
正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...
- MySQL学习笔记一
MySQL 学习笔记 一 一.数据库简单介绍 1. 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系 ...
随机推荐
- mysql事务锁表
-- 查看被锁住的SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; -- 等待锁定SELECT * FROM INFORMATION_SCHEMA.INNO ...
- python 用turtle 画小猪佩奇
from turtle import * def nose(x,y):#鼻子 penup()#提起笔 goto(x,y)#定位 pendown()#落笔,开始画 setheading(-30)#将乌龟 ...
- E. Beautiful Subarrays 字典树
http://codeforces.com/contest/665/problem/E 给定一个序列,问其中有多少个区间,所有数字异或起来 >= k 看到异或,就应该想到异或的性质,A^B^B ...
- Spark Mllib里如何采用保序回归做回归分析(图文详解)
不多说,直接上干货! 相比于决策树,保序回归的应用范围没有决策树算法那么广泛. 特别在数据处理较为庞大的时候,采用保序回归做回归分析,可以极大地节省资源,从而提高计算效率. 保序回归的思想,是对数据进 ...
- pat1061. Dating (20)
1061. Dating (20) 时间限制 50 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Sherlock Holmes ...
- <Linux系统minfo命令用法>
minfo命令——ms-dos文件系统的各项参数的显示 minfo这个指令主要用于显示MS-DOS文件系统的各项参数,包括扇区数.磁头数.柱面数等. 参数主要有以下几个: -v 显示详细的参数 dri ...
- dojo topic 发布与订阅 小例子可以参考下
<!DOCTYPE html><html> <head> <title></title></head> <body> ...
- springcloud中servcie层调用fegin异常以及异步方法的实现
近日在做业务上的短信推送和APP消息推送,通过调用别的模块的接口来实现,在springcloud中通过fegin进行调用.这里要说明的事情并不是如何开发推送功能,而是在调试过程中碰到的一些小问题.我把 ...
- SSM整合笔记
SSM整合笔记 1,创建maven项目 创建maven项目过程省略 ps:如果创建完maven项目之后项目报错,可能是没有配置Tomcat 2,在pom.xml里面导入相应的jar的依赖 <pr ...
- 实战:ADFS3.0单点登录系列-前置准备
本文为本系列第二篇,主要分为两部分进行介绍, 一.网络拓扑 二.证书制作 还是将本系列目录贴出来,方便导航 实战:ADFS3.0单点登录系列-总览 实战:ADFS3.0单点登录系列-前置准备 实战:A ...