深入浅出MySQL阅读笔记一:SQL基础
mysql控制台
1
mysql -uroot -proot
sql语句分类
- DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、
数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括 create、drop、alter
等。 - DML(Data Manipulation Language)语句:数据操纵语句,用于添加、删除、更新和查
询数据库记录,并检查数据完整性,常用的语句关键字主要包括 insert、delete、udpate 和
select 等。 - DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和
访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的
语句关键字包括 grant、revoke 等。
MYSQL version 5.5.8
DDL
数据库
:1
2
3
4
5
6
7
8
9
10
11-- 查看数据库
SHOW DATABASES;
-- 创建数据库
CREATE DATABASE dbname;
-- 使用数据库
USE dbname;
-- 删除数据库
DROP DATABASE dbname;
mysql自动创建的数据库
:
- information_schema:主要存储了系统中的一些数据库对象信息。比如用户表信息、列信
息、权限信息、字符集信息、分区信息等。 - cluster:存储了系统的集群信息。
- mysql:存储了系统的用户权限信息。
- test:系统自动创建的测试数据库,任何用户都可以使用。
表
:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61-- 查看表
SHOW TABLES;
-- 创建表
CREATE TABLE tablename (column_name_1 column_type_1 constraints,
column_name_2 column_type_2 constraints , ……column_name_n column_type_n
constraints);
-- e.g.
create table emp(
ename varchar(10),
hiredate date,
sal decimal(10,2),
deptno int(2));
-- 查看表定义
DESC tablename;
-- 查看创建表的语句
SHOW CREATE TABLE tablename \G;
-- \G表示记录能够按照字段竖着排列
-- 删除表
DROP TABLE tablename;
/* 对于已经创建好的表,尤其是已经有大量数据的表,如果需要对表做一些结构上的改变,我
们可以先将表删除(drop),然后再按照新的表定义重建表。这样做没有问题,但是必然要
做一些额外的工作,比如数据的重新加载。而且,如果有服务在访问表,也会对服务产生影
响。
因此,在大多数情况下,表结构的更改一般都使用 alter table 语句,以下是一些常用的命令。 */
-- 修改表字段定义
ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRST | AFTER col_name];
-- e.g.
alter table emp modify ename varchar(20);
-- 可选项[FIRST | AFTER col_name]改变字段的order
-- e.g. ename放到最后
alter table emp modify ename varchar(20) after deptno;
-- 增加表字段
ALTER TABLE tablename ADD [COLUMN] column_definition [FIRST | AFTER col_name]
-- e.g.
alter table emp add column age int(3);
-- 删除表字段
ALTER TABLE tablename DROP [COLUMN] col_name
-- e.g.
alter table emp drop column age;
-- 字段改名
ALTER TABLE tablename CHANGE [COLUMN] old_col_name column_definition
[FIRST|AFTER col_name]
-- e.g.
alter table emp change age age1 int(4) ;
/* 注意:CHANGE/FIRST|AFTER COLUMN 这些关键字都属于 MySQL 在标准 SQL 上的扩展,在
其他数据库上不一定适用。*/
-- 表改名
ALTER TABLE tablename RENAME [TO] new_tablename
-- e.g.
aletr table emp rename emp1;
DML
1 | -- 插入记录 |
DCL
1 | -- 创建一个数据库用户 z1,具有对 sakila 数据库中所有表的 SELECT/INSERT 权限 |
帮助的使用
?和help一样:
显示所有可供查询的的分类:
? contents
help contents
http://dev.mysql.com/downloads/是 MySQL 的官方网站,可以下载到各个版本的 MySQL 以及
相关客户端开发工具等。
http://dev.mysql.com/doc/ᨀ供了目前最权威的 MySQL 数据库及工具的在线手册。
http://bugs.mysql.com/这里可以查看到 MySQL 已经发布的 bug 列表,或者向 MySQL ᨀ交 bug
报告。
http://www.mysql.com/news-and-events/newsletter/通常会发布各种关于MySQL的最新消息。
小结
本章简单地介绍了 SQL 语句的基本分类 DML/DDL/DCL,并对每一种分类下的常用 SQL 的用
法进行了举例说明。MySQL 在标准 SQL 的基础上进行了很多扩展,本章对常用的一些语法
做了简单介绍,更详细的说明,读者可以参考 MySQL 的帮助或者官方文档。在本章的最后,
还介绍了用户应如何使用 MySQL 中的帮助文档,以便快速查找各种语法定义。