mysql的SQL语言DDL
一、 SQL语言的分类
SQL(Structured Query Language 即结构化查询语言)
- DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
- DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE
- DQL语句 数据库查询语言: 查询数据SELECT
- DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE
二、 名词的解释说明
数据库服务器 – 硬件+系统软件+MYSQL软件
数据库 – 表的管理单元
表 – 记录的管理单元
记录(行)-- 信息的载体,字段的管理单元
字段(列) – 例如 字段名姓名,类型文字,约束不能为空
三、 DDL
1. DDL-库
创建库–CREATE DATABASE 数据库名;
(数据库名要求:区分大小写;唯一性;不能使用关键字如 create select;不能单独使用数字和特殊符号“如-";正常使用拼音或单词即可。)
查看所有数据库–SHOW DATABASES;
选择/进入数据库–USE 数据库名
调用函数,查询当前库-- SELECT database();
删除数据库–DROP DATABASE 数据库名;
系统中的位置–/var/lib/mysql/(数据库的实体可以用于清理和备份)
2. 数据类型
数值类型–整数类型 int;浮点数类型 float小数
字符串类型–字符系列 CHAR和VARCHAR,char的长度不可变varchar的长度可以增加;枚举类型 ENUM单选;集合类型 SET多选。
时间和日期类型–年 YEAR;日期 DATE ;时间 TIME ;日期和时间 DATETIME。
扩展:
数据类型
(1)数值类型:
整数类型 INT
TINYINT SMALLINT MEDIUMINT BIGINT 注意长度
浮点数类型 FLOAT DOUBLE 注意小数点
定点数类型 DEC
位类型 BIT
(2)字符串类型:
CHAR系列 CHAR VARCHAR
TEXT系列 TEXT
TINYTEXT MEDIUMTEXT LONGTEXT (ASCII)
BLOB 系列 BLOB
TINYBLOB MEDIUMBLOB LONGBLOB (特殊符号)
BINARY系列 BINARY VARBINARY
枚举类型: ENUM 65536个元素 单选择题
集合类型: SET 64个元素 多选择题
(3)时间和日期类型:
DATE TIME DATETIME TIMESTAMP YEAR
(4)完整性约束:
目的:由于生活中需要避免重名的情况,所以数据库中某列使用完整性约束来限定此类要求。用于保证数据的完整性和一致性。
约束类型
约束条件与说明
PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录,不可以为空。如 员工信息表 UNIQUE + NOT NULL
FOREIGN KEY (FK) 该字段为该表的外键,实现表与表(父表主键/子表1外键/子表2外键)之间的关联。如 员工工资表
UNIQUE KEY (UK) 标识该字段的值是唯一的,可以为空,一个表中可以有多个UNIQUE KEY
AUTO_INCREMENT 标识该字段的值自动增长(整数类型,而且为主键)
DEFAULT 为该字段设置默认值,字段是否有默认值,缺省的默认值是NULL,如果插入记录时不给字段赋值,此字段使用默认值
例如sex enum(‘male’,‘female’) not null default ‘male’ //默认值male
age int unsigned NOT NULL default 20 //必须为正值(无符号)不允许为空 默认是20
NOT NULL 标识该字段不能为空。是否允许为空,默认NULL,可设置NOT NULL,字段不允许为空,必须赋值
UNSIGNED无符号,正数
ZEROFILL 使用0填充,例如0000001
3. DDL-表
创表目的:表是数据库存储数据的基本单位,表由若干个字段(列)组成,主要用来存储数据记录(行)。
操作示例;
创库
create database haha;
使用库
use haha;
创表1
创建 表格 表名t1 (列名id 类型int );
CREATE TABLE t1 (id int);
查看所有表名
show tables;
插入数据
插入 到 表名t1 值 (1);
INSERT INTO t1 VALUES (1);
查询所有数据
查询 所有列 从 表名t1
SELECT * FROM t1;
删除表
drop table t1;