一、SQL语言的组成部分
DDL:数据定义语言
主要用于数据库、表、视图、索引等操作
CML:数据操作语言
主要用于增(INSERT)删(DELETE)改(UPDATE)查(SELECT)
DCL:数据操作语言
主要用于授权(GRANT)及取消授权(REVOKE)
二、数据字典与元数据
数据字段:各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要结果
作用:保存数据库服务器元数据
元数据:与数据本身无关,但是也是与数据
元数据保存信息:
关系的名字
每个关系的各字段的名字
各字段的数据类型和长度
约束
每个关系上的视图的名字及视图的定义
授权用户的名字
用户的授权和账户信息
统计类数据:
每个关系字段的个数
每个关系中行数
每个关系的存储方法
元数据保存的数据库: information_schema
三、数据类型:
数值型:
INT:大整数值
BIGINT:极大整数值
FLOAT:单精度浮点值
DOUBLE:双精度浮点值
DECIMAL:小数值
TINYINT:小整数值
日期和时间类型
DATE:日期值
TIME:时间值
YEAR:年份值
DATATIME:混合日期和时间
TIMESTAMP:混合日期和时间时间戳
字符串型:
CHAR:定长字符串
VARCHAR:变长字符串
TEXT:长文本数据
四、服务器变量:可以用于调优。
服务器变量分类
系统变量:系统设置的可以更改的变量
查看系统变量:show variables;
状态变量:查看并监控mysql状态的变量
查看状态变量:show status;
从使用上分类
局部变量
全局变量
会话变量
用户变量
查看服务器上的变量:
mysql> show [{global|session}] variables [like ''];
mysql> select @@{globa|session}.variable_name
mysql> select * from information_schema.GLOBAL_VARIABLES where VARIABLE_NAME='SOME_VARIABLE_NAME'; 查看全局变量
mysql> select * from information_schema.SESSION_VARIABLES where VARIABLE_NAME='SOME_VARIABLE_NAME'; 查看会话变量
五、MySQL中字符大小写
1.SQL关键字及函数不区分大小写
2.数据库、表及视图名称的大小写区分与否取决于底层OS及FS
3.存储过程、存储函数及事件调度器的名字不区分大小写,但触发器区分大小写
4.表别名区分大小写
5.对字段中的数据,如果字段类型为binary类型,则区分大小写,非binary不区分大小写
六、数据库操作
1.查看当前所有数据库
SHOW DATABASES;
2.设置默认数据库
use database;
3.查看当前默认数据库字符集
SHOW VARIABLES LIKE 'CHARACTER_SET_DATABASE' ;
4.查看数据库:SHOW DATABASES;
5.创建数据库:CREATE DATABASE DATABASE_NAME;
例:创建名为test1的数据库
CREATE DATABSE test1;
6.删除数据库
DROP DATABASE DATABASE_NAME;
7.修改数据库字符集
ALTER DATABASE database_name CHARACTER SET 'utf8'
七、表的操作
1.查看数据库中有那些表
SHOW TABLES;
2.查看某个表的表结构
desc table_name;
desc database.table_name;
3.查看表的状态信息
show table status like ‘table_name’
4.创建新表
CREATE TABLE table_name (
字段名1 字段类型 约束,
字段名2 字段类型 约束,
表定义:主键等等
);
5.约束:
NOT NULL :非空,用于保证该字段的值不能为空。例如学生表的学生姓名及学号等等。
DEFAULT:默认值,用于保证该字段有默认值。例如学生表的学生性别
PRIMARY KEY:主键,用于保证该字段的值具有唯一性并且非空。例如学生表的学生学号等。
UNIQUE:唯一,用于保证该字段的值具有唯一性,可以为空。例如注册用户的手机号,身份证号等。
FOREIGN KEY:外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值,在从表添加外键约束,用于引用主表中某些的值。例如学生表的专业编号.
6.复制一个表创建新表:
CREATE TABLE 新表名LIKE table_name;
7.复制一个表结构创建新表
CREATE TABLE 新表名 AS SELECT * FROM table_name;
8.删除表
DROP TABLE table_name ;
9.修改表
插入一个新字段:
ALTER TABLE 表名 ADD COLUMN 字段名 字段类型;
修改一个字段
修改字段名:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 字段类型;
修改字段类型:ALTER TABLE 表名 MODIFY 字段名 字段类型;
删除一个字段:
ALTER TABLE 表名 DROP 字段名 ;
八、视图操作
1.创建视图:CREATE VIVEW 视图名 AS SELECT语句
2.删除视图:DROP VIVEW 视图名