第二讲:数据库的基本操作
1.SQL:结构化查询语言(Structured Query Language)
分类:针对操作对象的不同,分成不同的语言
①数据操作(管理)语言(DML)
②数据定义语言(DDL):对保存数据的格式进行定义
③数据库控制语句(DCL):针对数据库软件服务进行操作
2.数据库操作
①创建数据库:create database db_name[数据库选项];
说明: ⅰ.语句要求使用语句结束符;来结束.
ⅱ.标识符(数据库名)命名规则,大小写取决于当前操作系统(认为是区分的),见名知义,推荐使用下 划线方式
ⅲ.标识符的字符:可以使用任意字符、数字、特殊符号甚至是中文,但是一些特殊的组合,例如纯数字、特殊符号、包括mysql内部关键字,应该使用标识符限定符来包裹,限定符:反引号 `.
设置编码格式:set names gbk;
②数据库查询:
ⅰ.查看当前存在的数据库:show databases;
ⅱ.查看数据库的创建语句:show create database db_name;
③删除数据库:drop database db_name;
④修改数据库:
ⅰ.修改数据库信息:alter database db_name[修改指令]
注:修改指令:数据库属性修改.
ⅱ.修改数据库名:简单的直接修改目录名;
将数据内容全部导出,新建一个数据库,将内容导入,删除旧的数据库
3.表操作
数据库是表的容器,表必须属于某个数据库,进行表操作,都会指定当前默认数据库。可以通过 . 语法,指明数据表所属的数据库,库.表(database.table)。
①创建表:create table tbl_name(列结构)[表选项]
ⅰ.先分析,需要保存的实体数据,拥有哪些属性,这些属性如何保存。
ⅱ.列定义:列名 列的数据类型 [列的属性(约束)]
ⅲ.选择当前的数据库:use db_name;
注:表名前缀:为了区分相同逻辑表名的不同应用,给逻辑表名增加前缀,形成真实表名。
②查表
ⅰ.有哪些表:show tables [like 'pattern'];
其中like pattern部分,表示只获得某种规则的表名,同时适用于databases
例:show tables like 'exam_%';显示以exam开头的表,其中%称之为通配符,表示任意字符的任意个数的组合
ⅱ.查看表的创建信息:show create table tal_name;
注:可以使用\G来作结束符。
ⅲ.查看表结构(描述表结构):describe tbl_name;(可简写为:desc tal_name).
说明:数据库对应目录,显然数据库内容对应的应该是目录的内容、文件。
③删除表:drop table tbl_name;
注:如果表不存在,不能删除,会报错误,可以通过以下来解决:
drop table if exists tal_name;(判断表是否存在,然后删除,同样适用于数据库)
④修改表
ⅰ.修改表名:rename table old_tbl_name to new_tbl_name;
注:支持修改多个表,中间用 、分割;
支持跨数据库重命名:rename table old_tbl_name to new_db_name.tbl_name;
(将一个表剪切到另一个数据库,可以用于给数据库重命名)。
ⅱ.修改列定义:alter table tbl_name[add|modify|drop|change]
增加一个新列:add 新列的定义
例:alter table exam_student add score int;
修改一个列的定义:modify 列定义
例:alter table exam_student modify stu_no varchar(40);
删除一个列:drop 列名
例:alter table exam_student drop score;
重命名一个列:change old_column 新列的定义
例:alter table exam_student change score fenshu int;
ⅲ.修改表选项:alter table tbl_name 表选项;
例:alter table exan_student character set utf8;
4.数据操作(CRUD:create,read,update,delete)
①创建数据
insert into 表名(字段列表) values(值列表);
说明:如果要插入的值为所有字段,可以省略字段列表,但值的顺序要与表中字段一致。
②查询数据
select 字段列表 from 表名 查询条件;
说明:字段列表可以用 * 代替,表示所有字段;
查询条件可以省略,表示所有记录都获得,相当于where 1;(1表示永远成立,相当于默认);
例:select * from exam_student where score>=72;
③删除数据
delete from 表名 条件;
例:delete from exam_student where score>=72;
说明:删除需要在逻辑上严格给定条件,否则容易造成数据误操作,导致损失,语法上可以没有where;
如果需要删除所有数据,使用where 1;
④修改数据
update 表名 set 字段 = 新值,...条件;
例:update exam_student set score=100 where score>60;
5.字符集
显示指定字符集:show variables like 'character_set%';
6.校对规则
每一套编码字符集都有与之相关的校对规则,校对规则:在当前编码下,字符之间的比较顺序什么。
每个字符都支持不定数量的校对规则,可以通过如下操作:show collation;
ci:不区分大小写
cs:区分大小写
bin:字节比较
格式:字符集_地区名_比较规则(ci、cs、bin)