SQL基本操作
库的操作
新增数据库
基本语法
create database 数据库名 [库选项]
库选项:用来约束数据库,分为两个选项:
字符集设定:charset/character set 具体字符集(数据存储的编码格式):常用字符集GBK、utf-8
校对集设定:collate 具体校对集(数据比较的规则)
查看数据库
查看所有数据库:show databases;
查看指定部分的数据库: 模糊查询:
show databases like ‘pattern’; –pattern是匹配模式
%:表示匹配多个字符
_:表示匹配单个字符
查看数据库的创建语句:show create database 数据库名;
更新数据库
数据库名字不可以修改
数据库的修改仅限库选项
:字符集和校对集(校对集依赖字符集)
alter database 数据库名字 [库选项];
charset/character set[=] 字符集
collate 校对集
删除数据库
drop database 数据库名;
表操作
新增数据表
create table [if not exists] 表名(字段名 数据类型,字段名 数据类型)[表选项];
if not exists :如果表名不存在,那么就创建,否则不执行创建代码:检查功能
表选项:控制表的表现
字符集:charset/character set 具体字符集;
保证表中数据储存的字符集
校对集:collate 具体校对集;
存储引擎:engine 具体的存储引擎(innodb和myisam)
当创建数据表的SQL指令执行之后,到底发生了什么?
1.指定数据库下已经存在对应的表
2.在数据库对应的文件夹下,会产生对应表的结构文件(跟存储引擎有关系)
查看数据表
查看所有表:
show tables;
查看部分表:模糊匹配:show tables like 'pattern';
查看表的创建语句:show create table 表名;
查看表结构:查看表中的字段信息
desc/describe/show columns from 表名;
修改数据表
修改表本身:
修改表名:rename table 旧表名 to 新表名;
修改表选项:alter table 表名 表选项 [=] 值;
修改字段:
新增字段:alter table 表名 add [cloumn] 字段名 数据类型 [列属性][位置];
位置:字段名可以存放表中的任意位置
first:第一个位置
after:在哪个字段之后:after 字段名;
默认的是在最后一个字段之后
修改字段:修改通常是修改属性或者数据类型
alter table 表名 modify 字段名 数据类型 [属性][位置];
重命名字段:alter table 表名 change 旧字段 新字段 数据类型 [属性][位置];
删除字段:alter table 表名 drop 字段名;
删除数据表:
drop table 表名1,表名2...;
可以一次删除多个表
数据操作
新增数据
方法1:insert into 表名 values(值列表)[,(值列表)...];
方法2:insert into 表名(字段列表)values(值列表)[,(值列表)...];
查看数据:
select */字段列表 from 表名 [where 条件];
select distinct 字段 from 表名
——-根据字段筛选数据更新数据:
update 表名 set 字段 = 值 [where 条件];
删除数据:
delete from 表名 [where 条件];
校对集问题
校对集:数据比较的方式
校对集有三种方式:
_bin: binary,二进制比较,取出二进制位,一位一位的比较,区分大小写。
_cs: case sensitive,大小写敏感。
_ci: case insensitive,大小写不敏感。
查看数据库所支持的校对集:show collation;
只有当数据产生比较的时候,校对集才会生效。
比较:根据某个字段进行排序:order by 字段名 [asc|desc];
asc是升序,desc是降序,默认是升序
字段属性
主键
主键:primary key,主要的键,一张表只能有一个字段可以使用对应的键,用来唯一的约束该字段里面的数据,不能重复:这种称之为主键
增加主键:
sql操作中有多种方式可以给表增加主键:大体分为三种:
方案1:在创建表的时候,直接在字段之后,跟primary key关键字(主键本身不允许为空)
优点:非常直接;缺点:只能使用一个字段作为主键
1
方案2:在创建表的时候,在所有的字段之后,使用primary key(主键字段列表)来创建主键(如果有多个字段作为主键,可以是复合主键)
1
方案3:当表已经创建好之后,额外追加主键:可以通过修改表字段属性,也可以直接追加。
alter table 表名 add primary key(字段列表);
前提:表中字段对应的数据本身是独立的(不重复)
主键约束
主键对应的字段中的数据不允许重复:一旦重复,数据操作失败(增和改)