MYSQL账号管理及DDL语言

账号管理

手动

管理界面如下。
在这里插入图片描述

创建账号

#创建qwe账号,密码123456,拥有全部数据库的权限
GRANT ALL PRIVILEGES ON *.* TO 'qwe'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

#创建zara账号,密码zara123,只拥有TUTORIALS数据库的权限
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
    ON TUTORIALS.*
    TO 'zara'@'localhost'
    IDENTIFIED BY '123456';

DDL语言

数据库管理

创建

CREATE DATABASE 库名;

CREATE DATABASE qqqq;

删除

DROP DATABASE IF EXISTS 库名;

DROP DATABASE IF EXISTS qqqq;

表管理

创建

#创建表
CREATE TABLE IF NOT EXISTS book(
	bid INT PRIMARY KEY,
	bname VARCHAR(20),
	bak VARCHAR(10)
)

基本语句

#添加数据
INSERT INTO book VALUES
(1,'斗罗一','2'),
(2,'斗罗二','1'),
(3,'斗罗三','1'),
(4,'斗罗四','2'),
(5,'斗罗五','2');

#查询表
SELECT * FROM book;

#删除数据
delete * from book#删除全部
delete * from book where bid=1

查看表结构

#查看表结构
DESC book;

操作列

#修改列名或数据类型
ALTER TABLE book CHANGE COLUMN ID bid INT;

#添加列
ALTER TABLE book ADD COLUMN aaa INT;

#删除列
ALTER TABLE book DROP COLUMN aaa;

修改表名

ALTER TABLE books RENAME TO book;

复制表

#复制表结构
CREATE TABLE books LIKE book;

#复制表加数据
CREATE TABLE bookss SELECT * FROM book;

#只复制部分数据
CREATE TABLE booksss SELECT bid,bname FROM book WHERE bak='2';

删除表

DROP TABLE IF EXISTS book;

约束

#————约束————
#主键——PRIMARY KEY
#外键——REFERENCES 表名(列名)
#唯一——UNIQUE
#检查——CHECK(sex=‘男’ or sex=‘女’)
#默认——DEFAULT(‘不详’)

约束相关代码

#创建表时添加约束
CREATE TABLE IF NOT EXISTS book(
	bid INT PRIMARY KEY,
	bname VARCHAR(20) UNIQUE,
	bak VARCHAR(10) DEFAULT('不详')
)

查看约束
SHOW INDEX FROM 表名;
SHOW VARIABLES LIKE '%约束名%';

#----创建约束----
#键表时添加(加在添加表的下面在括号里)
CONSTRAINT 表名 约束(列名或内容)
CONSTRAINT 主表 FOREIGN KEY(主表列) REFERENCES 外键表(外表列)#外键不一样
#外面添加
ALTER TABLE book MODIFY COLUMN 列名 约束#列级
ALTER TABLE book ADD 约束(列名或内容)#表级
ALTER TABLE 主表 ADD CONSTRAINT 约束名 FOREIGN KEY(主表列) REFERENCES 外键表(外表列)#表级

#----删除表约束----
DROP TABLE IF EXISTS 表名
DROP TABLE 表名 DROP 约束#删除主键
DROP TABLE 表名 DROP INDEX 列名#删除唯一
ALTER TABLE book MODIFY COLUMN bak VARCHAR(20);

#添加约束并修改数据类型
ALTER TABLE book MODIFY COLUMN bname VARCHAR(25) NOT NULL;

标识列

#标识列   AUTO_INCREMENT
CREATE TABLE IF NOT EXISTS tb_a(
	id INT UNIQUE AUTO_INCREMENT,#默认增长1
	name VARCHAR(20)
)
INSERT INTO tb_a VALUES(1,'斗一');
INSERT INTO tb_a(name) VALUES('斗二');
SELECT * FROM tb_a
SET AUTO_INCREMENT_INCREMENT=2;#设置自动增长为2

总结

学习了部分新的语句,加深了对已经学会的sql语句的印象;

猜你喜欢

转载自blog.csdn.net/ZhiCun_java/article/details/106768573