一、SQL标准命令
1、DDL(数据定义语言)
数据定义语言(Data Definition Language) : 是SQL语言用来对数据库对象进行增、删、改的语言
- 创建(创建新表、视图等对象)
CREATE TABLE ~
- 更改(修改已有的对象)
ALTER TABLE ~
- 删除(删除数据库中已有的表或其他对象)
DROP TABLE ~
2、DML(数据操纵语言)
数据操纵语言(Data Manipulation Language):一般用来对数据表中的数据进行增、删、改、查处理
- 插入:
INSERT ~
- 删除:
DELETE ~
- 修改:
UPDATE ~
- 查找:
SELECT ~
3、DCL(数据控制语言)
数据控制语言(Data Control Language):数据控制语言用来为用户提供权限控制
- 授予权限
GRANT ~
- 撤销已授予的权限
REVOKE ~
- 拒绝给当前数据库内的用户或者角色授予权限
DENY ~
二、数据库相关操作
各种增删改查的信息都在这里
一、创建
1、创建数据库
- create database 数据库;
2、创建表
create table 【if not exists】 表名 (
字段名 字段类型[ 列约束 ],
....
字段名 字段类型[ 列约束 ]
)[ 表选项 ] ;
列约束:
- NOT NULL : 指明的列不能存 NULL 值
- UNIQUE : 指明该列的每个值都是唯一的
- PRIMARY KEY : 指明某列(或两个列多个列的结合)有唯一标识,方便查找。每个表中最多有一个主键
- FOREIGN KEY : 用来与其他表进行连接的共同标识
- CHECK : 指明该列的值需要遵守某种规范
- DEFAULT : 设置默认值
- AUTO_INCREMENT : 自动增加的值,不用手动赋值
注:
- 设定字符集: charset 字符集
- 设定存储引擎: engine InnoDB / MyISAM
- 设定列属性:NULL/NOT NULL, DEFAULT, PRIMARY KEY, UNIQUE KEY, AUTO_INCREMENT, COMMENT
例子:增加一个数据库db_user , 创建一个表 student ,表中有id-主键-自增,姓名-非空 ,年龄-非空-默认18 ,性别-非空-默认男 ,字符集UTF-8,引擎InnoDB.
CREATE DATABASE db_user;
USE db_user;
CREATE TABLE IF NOT EXISTS `student`(
`id` INT(10) PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(20) NOT NULL,
`age` INT(5) NOT NULL DEFAULT '18',
`gender` VARCHAR(5) NOT NULL DEFAULT "男"
)ENGINE=INNODB DEFAULT CHARSET=utf8;
二、添加
1、添加表中记录
- INSERT INTO 表名 VALUES (值列表)[,(值列表)]; ## 可一次性插入多条记录
INSERT INTO `student` VALUES
(2,'李四',14,'男'),
(3,'王五',15,'女');
这里注意需要表中列数和输入的列数保持一致,否则会出现如下情况
错误代码: 1136
Column count doesn't match value count at row 1
- INSERT INTO 表名 (字段列表) VALUES (值列表)[,(值列表)];
INSERT INTO `student` (`name`,`age`,`gender`) VALUES ('张三',19,'男');
三、查询
1、查询已有数据库列表
-
show databases;
2、查看数据库的创建语句
- show create database 数据库名;
3、查询数据表
- show tables;
- show tables like '%关键词%';
4、查看数据表的创建语句
- show create table 表名 \G
5、查看表结构
- desc/describe/show columns from 表名;
6、查看表中数据
- SELECT * / 字段列表 FROM 表名 [WHERE 条件]; (这里梦幻联动一下,越用越熟悉)
四、修改
1、修改数据表结构
①修改表名
- rename table 老表名 to 新表名;
RENAME TABLE `student` TO `teacher`;
②修改表选项
- alter table 表名 表选项 [=] 值;
ALTER TABLE `student` ENGINE=MYISAM;
③新增表字段
- alter table 表名 add [column] 字段名 数据类型 [列属性] [位置];
ALTER TABLE `student` ADD COLUMN `tel_number` INT AFTER `gender`;
④重命名字段
- alter table 表名 change 旧字段 新字段名 数据类型 [属性] [位置]
ALTER TABLE `student` CHANGE `name` `s_name` VARCHAR(10);
2、更新记录
- UPDATE 表名 SET 字段 = 值 [WHERE条件];
UPDATE student SET `s_name` = 'llj' ,`age` = 21 WHERE `id` = 2;
五、删除
1、删除字段
- alter table 表名 drop 字段名;
ALTER TABLE student DROP `tel_number`;
2、删除数据表
- drop table [if exists] 表名1,表名2...;
DROP TABLE IF EXISTS teacher;
3、删除记录
- DELETE FROM 表名 [WHERE条件];
DELETE FROM student WHERE s_name = 'llj';
4、清空表中所有数据
- TRUNCATE TABLE 表名;
TRUNCATE TABLE student;