跳至主要內容

MySQL基础(二)

Yaien Blog原创大约 3 分钟DBMySQL基础

MySQL基础(二)

MySQL基础笔记系列

主键约束

  • 主键:表示数据唯一性的字段称为主键
  • 约束: 创建表时给表字段添加的限制条件
  • 主键约束: 限制值唯一且非空
# 格式: create table t1(id int primary key,name varchar(10));
insert into t1 values(1,'AAA');
insert into t1 values(1,'BBB'); # 报错 不能重复
insert into t1 values(null,'CCC'); # 报错 不能为null

主键约束+自增

  • 从历史最大值基础上+1 , 自增数值只增不减
# 格式: create table t2(id int primary key auto_increment,name varchar(10));
 insert into t2 values(null,'aaa'); # 1
 insert into t2 values(2,'bbb'); # 2
 insert into t2 values(10,'ccc'); # 10
 insert into t2 values(null,'ddd'); # 11
 delete from t2 where id>=10;
 insert into t2 values(null,'eee'); # 12

注释 comment

  • 为表或列添加注释
# 格式: create table t3(id int primary key auto_increment comment '这是id啊',name varchar(10) comment '名字');
# 查看
show create table t3;

`的作用

  • 用于修饰表名和字段名 可以省略
    create table t4(id int,name varchar(10));

SQL分类

DDL Data Definition Language 数据定义语言

  • truncate:删除表并创建新表 自增数值清零
  • truncate table 表名;
  • 包括: create 、 alter 、 drop 、 truncate

不支持事务

DML Data Manipulation Language 数据操作语言

  • 包括: insert 、 update 、 delete 、 select(DQL)

支持事务

DQL Data Query Language 数据查询语言

  • 只包括select

TCL Transaction Control Language 事务控制语言

  • 包括: begin 、 commit 、rollback、 savepoint xxx 、 rollback to xxx;

DCL Data Control Language 数据控制语言

  • 分配用户权限相关的SQL

数据类型

整数

int(m) 和 bigint(m) ,m代表显示长度,不足m长度时补零,需要结合zerofill关键字使用

   create table t_int(id int,age int(10) zerofill);
   insert into t_int values(1,20);
   select * from t_int;

浮点数

double(m,d) m代表总长度 d代表小数长度, 超高精度浮点数decimal(m,d) 当涉及超高精度运算时使用。

25.234 m=5 d=3

字符串:

  • char(m) 固定长度,最大长度255 好处:执行效率高
  • varchar(m) 可变长度, 好处:节省资源, 最大长度65535 但是超高255建议使用text
  • text(m) 可变长度, 最大长度65535

日期

  • date:只能保存年月日
  • time:只能保存时分秒
  • datetime:年月日时分秒 最大值:9999-12-31 ,默认值为null
  • timestamp:时间戳 年月日时分秒 最大值:2038-1-19 ,默认值为当前系统时间
create table t_date(t1 date,t2 time,t3 datetime,t4 timestamp);
insert into t_date values('2019-05-17',null,null,null);
insert into t_date values(null,'16:29:00','2019-05-17 16:30:00',null);

sql文件导入

  1. windows系统
# 把文件放到d盘根目录
source d:/tables.sql;
  1. linux系统
# 把文件放到桌面, 然后执行
source /home/tables.sql;

is null 和 is not null

  1. 查询没有领导的员工姓名和工资
 select ename,sal from emp where mgr is null;
  1. 查询有奖金的员工姓名,工资,奖金
select ename,sal,comm from emp where comm is not null;

别名

select ename from emp;
select ename as '姓名' from emp;
select ename '姓名' from emp;
select ename 姓名 from emp;
上次编辑于:
贡献者: yanggl