1. 关系型数据库的常见组件
数据库:database
表:table
行:row
列:column
索引:index
视图:view
用户:user
权限:privilege
存储过程:procedure
存储函数:function
触发器:trigger
时间调度器:event scheduler,任务计划
2. SQL语言规范
在数据库系统中,SQL语句不区分大小写(建议用大写)
SQL语句可单行或多行书写,以“;”结尾
关键词不能跨多行或简写
用空格和缩进来提高语句的可读性
字句通常位于独立行,便于编辑,提高可读性
注释:
SQL标准:
/*注释内容*/ 多行注释
-- 注释内容 单行注释,注意有空格
MySQL注释:
#
3. SQL语句分类
DDL:Data Defination Language数据定义语言
CREATE,DROP,ALTER
DML:Data Manipulate Language数据操纵语言
INSERT,DELETE,UPADATE
DCL:Data Control Language数据控制语言
GRANT,REVOKE,COMMIT,ROLLBACK
DQL:Data Query Language数据查询语言
SELECT
4. SQL语句构成
SQL语句构成:
Keyword组成clause
多条clause组成语句
示例:
SELECT * SELECT子句
FROM products FROM子句
WHERE price>400 WHERE子句
说明:一组SQL语句,有三个子句构成,SELECT,FROM和WHERE是关键字
5. 数据库操作
创建数据库:
CREATE DATABASE|SCHEMA [IF NOT EXISTS] 'DB_NAME';
CHARACTER SET 'character set name' COLLATE 'collate name'
修改数据库:
ALTER DATABASE DB_NAME character set utf8;
删除数据库:
DROP DATABASE|SCHEMA [IF EXISTS] 'DB_NAME';
查看支持所有字符集:
SHOW CHARACTER SET;
查看支持所有排序规则:
SHOW COLLATION;
获取命令使用帮助:
mysql> HELP KEYWORD;
查看数据库列表:
mysql>SHOW DATABASES;
6. 表的操作
表:二维关系
设计表:遵循规范
定义:字段,索引
字段:字段名,字段数据类型,修饰符
约束,索引:应该创建在经常用作查询条件的字段上
6.1 表的创建
创建表:CREATE TABLE
1. 直接创建
2. 通过查询现存表创建;新表会被直接插入查询而来的数据
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definitation,...)] [table_options] [partition_options] select_statement
3. 通过复制现存的表的表结构创建,但不复制数据
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name {LIKE old_tbl_name} |(LIKE old_tbl_name)}
注意:
Storage Engine是指表类型,也即在表创建时指明其使用的存储引擎,同一库中不同表可以使用不同的存储引擎
同一库中表建议要使用同一种存储引擎类型
CREATE TABLE [IF NOT EXISTS] 'tbl_name' (col1 type1 修饰符,col2 type2 修饰符,...)
字段信息:
col type1
PRIMARY KEY(col1,...)
INDEX(col1,...)
UNIQUE KEY(col1,...)
表选项:
ENGINE [=] engine_name
SHOW ENGINES;查看支持的engine类型
ROW_FORMAT [=]
{DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}
获取帮助:
mysql> HELP CREATE TABLE:
查看所有的引擎:SHOW ENGINES
查看表:SHOW TABLES [FROM db_name]
查看表结构:DESC [db_name.] tb_name
SHOW COLUMNS FROM [db_name.] tb_name
删除表:DROP TABLE [IF EXISTS] tb_name
查看表创建命令:SHOW CREATE TABLE tbl_name
查看表状态:SHOW TABLE STATUS LIKE ‘tbl_name’
查看库中所有表状态:SHOW TABLE STATUS FROM db_name
DROP TABLE [IF EXISTS] 'tbl_name';
ALTER TABLE 'tbl_name'
字段:
添加字段:add
ADD col1 data_type [FIRST_AFTER col_name]
删除字段:drop
修改字段:
alter (默认值),change(字段名),modify(字段属性)
索引:
添加索引:add index
删除索引:drop index
表选项:
修改:
查看表上的索引:SHOW INDEXES FROM [db_name];
查看帮助:HELP ALTER TABLE
6.2 表的创建例子
ALTER TABLE students RENAME s1;
ALTER TABLE s1 ADD phone varchar(11) AFTER name;
ALTER TABLE s1 MODIFY phone int;
ALTER TABLE s1 CHANGE COLUMN phone mobile char(11);
ALTER TABLE s1 DROP COLUMN mobile;
ALTER TABLE s1 character set utf8;
ALTER TABLE s1 change name name varchar(20) character set utf8;
Help ALTER TABLE 查看帮助
ALTER TABLE students ADD gender ENUM('m','f');
ALTER TABLE students CHANGE id sid int UNSIGNED NOT NULL PRIMARY KEY;
ALTER TABLE students drop primary key;
ALTER TABLE students ADD UNIQUE KEY(name);
ALTER TABLE studnets ADD INDEX(age);
ALTER TABLE students drop primary key;
DESC students;
SHOW INDEXES FROM students;
ALTER TABLE students DROP age;
网友评论