SQL基础-DDL数据定义语言

泪湿孤枕 提交于 2019-11-29 01:44:37

SQL数据定义语言-DDL语句

DDL语句部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。

语句 释义
CREATE DATABASE 创建新数据库
ALTER DATABASE 修改数据库
CREATE TABLE 创建新表
ALTER TABLE 变更(改变)数据库表
DROP TABLE 删除表
DELIMITER 分隔符
CREATE INDEX 创建索引(搜索键)
DROP INDEX 删除索引

1. 设置root账户

其一:

mysql -u root -p

回车即可,因为还没有root密码。下来根据提示输入y表示新建root。然后是连续输入两次root密码。接下来就是一路输入y后回车就可以了。

其二:

mysql > mysql -u root -p  所要设置的密码

需要修改密码的话:

mysql > mysql -u root -p  已经设置的旧密码  password  所要设置的新密码

2. 使用数据库:

登录数据库

#mysql -u root -p

切换数据库

mysql > use 数据库名称;

更新数据库使之改动生效

mysql > flush privileges;

3. 创建数据库信息

新建数据库

mysql > create database 数据库名字 default character set utf8mb4; 

如果不存在创建数据库

mysql > create database if not exists 数据库名字; 

创建数据库表

mysql > create table 表名称(列名1 类型1,列名2 类型2);

4. 查看

查看数据库信息

语句 释义
show databases; 显示已有的数据库
show create database 数据库名字; 查看创建的数据库信息
select database(); 查看当前数据库
select host,user from mysql.user; 显示已经建立的用户
select now(); 查看当前时间
show warngings; 查看数据库警告信息

查看数据表信息

语句 释义
show tables; 显示已有的数据表
show create table 数据表名字; 查看创建的表信息
desc 数据表名字; 查看数据表属性

5. 更改信息

更改数据库编码

mysql > alter database 数据库名字 character set utf8mb4;

更改表名

mysql > rename table 表名 to 新表名;

更改表结构

固有参数 释义
add 添加列
modify 修改数据类型
change 修改列名
drop 删除列

用法:

mysql > alter table 表名字 固有参数 列名 类型 [完整性约束条件];

添加主键


mysql > alter table 表名 add primary key(字段名称...);

删除主键

mysql > alter table 表名 drop primary key;

6. 删除数据库信息

删除数据库

mysql > drop database 数据库名字;

删除数据库表

mysql > use 数据库;
#进入所有删除的数据库
mysql > drop table 数据库的表;
#删除需要删除的表

7. 使用数据库

mysql > use 所要使用的数据库名字;

这里,use 语句可以通告MySQL把db_name数据库作为默认(当前)数据库使用,用于后续语句。该数据库保持为默认数据库,直到语段的结尾,或者直到出现下一个不同的use语句

8. 删除账户及权限

mysql > drop user 用户名@'%';
 

mysql > drop user 用户名@ localhost; 
 

mysql > drop user 用户名@'192.168.1.33_'; 
 

9. 退出数据库

离开mysql:输入

mysql > \q

或者

mysql > quit

10. 增删改综合示例

mysql > create database if not exists 数据库名字 default character set utf8mb4; 
#创建数据库,避免重复数据库报错

mysql > use 数据库名字;
#进入数据库

mysql > CREATE TABLE 表1(ID int,Name varchar(255));
#创建数据库表

mysql > alter database 数据库名字 character set utf8mb4;
#更改数据库编码

mysql > rename table 表1 to 新表名;
#更改数据表名

mysql > alter table 新表名 add 新增列名 int;
#新增列名

mysql > drop table 数据库的表;
#删除需要删除的表

mysql > drop database 数据库名字;
#删除需要删除的数据库

11. 索引

索引特点

索引在 MySQL 中也叫"键",是储存引擎用于快速找到记录的一种数据结构。索引对于良好的性能非常关键,尤其是当表中数据量越来越大时,索引对于性能的影响愈发重要。

  • 索引优化是对查询性能优化最有效的手段
  • 索引能够轻易将查询性能提升好几个数量级
  • 索引相当于字典音序表,可用于定向区域查找
  • 索引的创建和维护会小号很多时间和磁盘,但大大提升了查询速度

索引类型

类型 释义
INDEX 普通索引
UNIQUE 唯一索引
FULLTEXT 全局索引
SPATIAL 空间索引

查看索引类型,可在查看创建表类型中查看

SHOW CREATE TABLE 表名;

索引语法

创建表时

CREATE TABLE 表名(
                字段名1     数据类型    [完整性约束条件...],
                字段名2     数据类型    [完整性约束条件...],
                [UNIQUE | FULLTEXT | SPATIAL ] INDEX | KEY
                [索引名]    (字段名[(长度)]    [ASC | DESC])
                );

已有表中添加

CREATE [UNIQUE | FULLTEXT | SPATIAL ] INDEX | KEY
                [索引名]    (字段名[(长度)]    [ASC | DESC]);

删除索引

DROP INDEX 索引名称 on 表名;

索引用法

列1设为主键,且自增长,列2设为指定索引列

INDEX 普通索引
mysql > CREATE TABLE 索引测试表(列1 INT primary key auto_increment,列2 varchar(20),INDEX 索引名 (列2));

mysql > CREATE TABLE 索引测试表(列1 INT primary key auto_increment,列2 varchar(20),KEY 索引名 (列2));
UNIQUE 唯一索引
mysql > CREATE TABLE 索引测试表2(列1 INT primary key auto_increment,列2 varchar(20),UNIQUE INDEX 索引名 (列2));
FULLTEXT 全文索引
mysql > CREATE TABLE 索引测试表2(列1 INT primary key auto_increment,列2 varchar(20),FULLTEXT INDEX 索引名 (列2));
多列索引
mysql > CREATE TABLE 索引测试表2(列1 INT primary key auto_increment,列2 varchar(20),INDEX 索引名 (列1,列2));

12. 分隔符

SQL默认结束分隔符为分号";",可试用delimiter变更

mysql > DELIMITER !

执行完毕后结束分隔符即变更为所设定的"!"符号。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!