1、什么是sql(structured query language)
结构化查询语言
2、sql分类(四类):
① DDL:数据定义语言
create/alter/drop
② DML:数据的操作语言
Insert /update /delete select (DQL)
③ DCL:数据的控制语言
grant revoke
④ TCL:数据的事务处理
commit rollback
1.创建数据库
语法:create database [if not EXISTS] 数据库名;
#创建数据库
create database if not EXISTS userinfo;
2.创建数据表
语法: create table [if not EXISTS] 表名(
列名 类型[长度]
);
#创建数据表
create table student
(
stuId INT,
stuName VARCHAR(30)
);
2.1 数据类型
A: 数字类型
int 4字节(取值范围)
bigint 8字节
如:stuId int(4) 4代表显示宽度 123 如果:无符号(UNSIGNED) 0123 12345
如果不写宽度值 默认11.
小数:
浮点数:
Float(m,d) m代表长度 d代表的小数位数
如: salary float(7,2) 345.678 =>345.68 12345.678=>12345.68
123456.78 报错
Double(m,d)
可以省略(m,d) 存数据时按真实的数值来存储
如: salary float 345.678=>345.678 123456.78=>123456.78
定点数:
Decimal(m,d)
可以省略(m,d)存储按默认长度和小数位数(10,0)
如:salary decimal 345.678=>346
使用时机:float和double 没有decimal精确,由其是求和,求平均值 时sum/avg函数,decimal比较精确度高时要用,必须要加上(m,d)
B: 字符串类型
Char(长度) 定长的 执行效率高
如: stuName char(10) 值:zs 会有8个空格补位
Varchar(长度) 变长的 执行效率低
如: stuName varchar(10) 值:zs 占2长度
如:身份证号char(18) 性别 char(1) ‘男’
地址varchar(50)
BINARY VARBINARY (存二进制)
BLOB 二进制 在数据库中存图片,音频
C: 日期类型
Date:YYYY-MM-DD
Time:HH:MM:SS
Year:yyyy
Datatime 格式:YYYY-MM-DD HH:MM:SS
‘1000-01-01 00:00:00.000000’ to ‘9999-12-31 23:59:59.999999’
Timestap时间戳 格式:YYYYMMDD HHMMSS
‘1970-01-01 00:00:01.000000’ to ‘2038-01-19 03:14:07.999999’.utc
D:特殊类型
Enum()
例:gender enum(‘男’,’女’) 只取其中一个
Set()
例:hobby set(‘book’,’music’,’footbal’,’swimming’) 可以取多个
3、表结构的修改(alter)
A.添加列
语法:alter table 表名 add 列名 类型 约束[first|after]
#追加新列hobby
alter table tuser add hobby set(‘aa’,‘bb’,‘cc’);
#添加到某一位置(stuid后)
alter table tuser add new_col VARCHAR(10) AFTER stuid;
#添加到第一个位置
alter table tuser add new1_col VARCHAR(10) FIRST;
B.修改列
语法:alter table 表名 change 原始列名 新列名 类型 约束[first|after]
#修改列名 aa列名
ALTER table tuser CHANGE new1_col aa VARCHAR(10);
#修改列的类型
ALTER table tuser CHANGE aa aa VARCHAR(20);
ALTER table tuser MODIFY aa VARCHAR(30); #和上面等同
#修改列名改变位置
ALTER table tuser CHANGE aa aa1 VARCHAR(20) AFTER birthday;
C.删除列
语法:alter table 表名 drop 列名
#删除列
ALTER table tuser DROP new_col;
ALTER table tuser DROP aa1;
4、删除表(把表的对象删除)
#删除student表
DROP TABLE student;
5、清空表(数据清空掉)
#查看表中的数据 “*” :所有列
select * from student1;
#清空表
truncate table student1;
6、删除数据库
#删除数据库
drop DATABASE userinfo;