在数据库系统中,SQL语句不区分大小写(建议用大写) 。
但字符串常量区分大小写。
SQL语句可单行或多行书写,以“;”结尾。
关键词不能跨多行或简写。
用空格和缩进来提高语句的可读性。
子句通常位于独立行,便于编辑,提高可读性。
注释:
SQL标准: /**/。多行注释 “–” 单行注释
MySql注释: “#”
一、数据库操作
1、列出在MySql服务器主机上的数据库
SHOW DATABASES [LIKE wild];
MySql自带数据库:
Information_schema:主要存储了系统中的一些数据库对象信息:如用户表信息、列信息、权限信息、字符集信息、分区信息等。(数据字典表)
Mysql:存储了系统的用户权限信息及帮助信息。
Test:系统自动创建的测试数据库,任何用户都可以使用。
2、创建一个数据库
CREATE DATABASE [IF NOT EXISTS]数据库名;
3、查看创建数据库
SHOW CREATE DATABASE <数据库名>;
4、删除数据库中得所有表和数据库
DROP DATABASE [IF EXISTS]数据库名;
5、使用USE选用数据库
USE 数据库名;
二、数据库对象
1、数据库对象的命名规则
- 必须以字母开头
- 可包含数字和三个特殊字符($ _ #)
- 不要使用MySQL的保留字
- 同一下的对象不能同名
2、数据库的对象
表 | 基本的数据存储对象,以行和列的形式存在;列就是字段,行就是记录。 |
---|---|
约束 | 执行数据校验,保证了数据的完整性 |
数据字典 | 就是系统表,存放数据库相关信息的表 |
视图 | 一个或者多个表数据的逻辑显示 |
索引 | 用于提高查询的性能 |
三、表的操作
1、在当前数据库中创建表
CREATE TABLE 表名(
列名 列类型,
列名 列类型
);
2、显示当前数据库中表的信息
SHOW TABLES[FROM 数据库名][LIKE wild];
3、查看数据表中各列的信息
DESC 表名;
4、删除指定的表
DROP TABLE 表名;
5、修改表的结构
- 修改列类型
ALTER TABLE 表名 MODIFY 列名 列类型;
- 增加列
ALTER TABLE 表名 ADD 列名 列类型;
- 删除列
ALTER TABLE 表名 DROP 列名;
- 列改名
ALTER TABLE 表名 CHANGE 旧列名 新列名 列类型;
- 更改表名
ALTER TABLE 表名 RENAME 新表名;
RENAME TABLE 表名 TO 新表名;
6、复制表的结构
1、create table 新表名 like 源表
2、create table 新表名 select * from 源表
三、MySQL数据库中的表
1、用户表:
- 被用户创建和维护的一些表
- 包括了用户自己的信息
2、数据字典表(视图):
- 被数据库系统创建和维护的一些表
- 包括了数据库的信息
四、MySQL数据库字典
由information_schema数据库负责维护
tables-存放数据库里所有的数据表、以及每个表所在数据库。
schemata-存放数据库里所有的数据库信息
views-存放数据库里所有的视图信息。
columns-存放数据库里所有的列信息。
triggers-存放数据库里所有的触发器。
routines-存放数据库里所有存储过程和函数。
key_column_usage-存放数据库所有的主外键
table_constraints-存放数据库全部约束。
statistics-存放了数据表的索引。
五、表的操作-约束
- 约束是在表上强制执行的数据校验规则。
- 约束主要用于保证数据库的完整性。
- 当表中数据有相互依赖性时,可以保护相关的数据不被删除.
大部分数据库支持下面五类完整性约束:
- NOT NULL非空
- UNIQUE Key唯一键
- PRIMARY KEY主键
- FOREIGN KEY外键
- CHECK检查
约束作为数据库对象,存放在系统表中,也有自己的名字
创建约束的时机
- 在建表的同时创建
- 建表后创建(修改表)
可定义列级或表级约束
有单列约束和多列约束