文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

SQL结构化查询语——之DDL语言

2024-04-02 19:55

关注

一、SQL结构化查询语言概述
SQL是关系型数据库所使用的标准语言,最初是基于IBM的实现在1986年被批准的。1987年,“国际标准化组织(ISO)”把ANSI(美国国家标准化组织) SQL作为国际标准。
1. SQL语言规范

在数据库系统中,SQL语句关键词不区分大小写(建议用大写)

  • 数据库的资源对象是区分大小写的,如表、数据库这类资源在操作系统中以独立文件形来存储,如果文件系统对文件命名区分大小写则SQL语言内引用资源对象
  • 资源内的元素不区分大小写,如:表的字段名称不区分大小写,因为在操作系统中不是独立的文件。

SQL语句可单行或多行书写,以“;”结尾。
关键词不能跨多行或简写。
用空格和缩进来提高语句的可读性(但并不强制)。
子句通常位于独立行,便于编辑,提高可读性()。

2. 注释:

注释类型 注释符号 说明 标准
单行注释 -- --与注释内容之间有空格 SQL标准
多行注释 /* 多行内容被/*包裹 SQL标准
单行注释 # 多行内容被#包裹 MYSQL标准

3.SQL语言分类

4.SQL语言帮助

5.数据库对象和命名

一、数据库管理操作:
数据库的管理操作包括:创建、修改、删除、查看信息等操作

1. 查看字符集

show character set;

2. 查看数据库

SHOW DATABASES;查看都有哪些数据库,即查看数据库列表。
SHOW DATABASES like 'vmlab';查看指定的数据库。
SHOW CREATE DATABASE vmlab;查看创建数据库过程,可以快速查看数据库采用的字符集。

3. 创建数据库

CREATE DATABASE vmlab; 用DBMS默认设置创建数据库
CREATE DATABASE microcisco CHARACTER SET "utf8mb4" COLLATE 'utf8mb4_bin';指定字符集为“utf8mb4”字符集排序规则为“utf8mb4_bin”

4. 修改数据库

ALTER DATABASE vmlab CHARCATER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
将vmlab数据库字符集修改为: 'utf8mb4' ,字符集的排序规则为:'utf8mb4_unicode_ci' 。
注意:
修改数据库字符集只对后继新存储的数据有效,但对已有数据不生效,生产中除非必须否则不建议修改
设置服务器默认的字符集,可以在配置文件vim /etc/my.cnf的[mysqld]选项部分指定字符集character-set-server=utf8mb4,这样以后所有创建的数据库都会继承字DBMS的字符集

5. 删除数据库:

DROP DATABASE like 'microcisco';

6. 基于SQL脚本创建数据库:

mysql < hellodb_innodb.sql -uroot -ppassword

二、表管理操作

注意:创建表之前一定要先指定在哪个数据库中创建。

1. 查看表信息:

DESC students; //desc 指定表名即可查看表结构
SHOW TABLES FROM mysql; //查看指定数据库中都有哪些表。
SHOW COLUMNS FROM mysql.user; //查看指定表都有哪些字段,执行结果与desc相同。
SHOW CREATE TABLE vmlab\G; //查看创建vmlab表时执行的命令,即表是如何创建的。可以参考该方法创建脚本文件。
SHOW TABLE STATUS LIKE 'students'\G; //查看表状态信息,比较常用可以显示字符集、创建时间、更新时间、表引擎等信息。
SHOW TABLE STATUS FROM mysql\G; //查看指定数据库的所有表状态。

2. 创建表

注意事项,表内字段修饰符NO NULL被指定后则在添加记录时该字段必须指定值。一般建议第一列ID为主键,且自动增长。
方法一:直接创建 ()内指定字段名称,存储的数据类型,修饰符等信息,不同定段字定义以逗号分隔
CREATE TABLE students (id int UNSIGNED AUTO_INCREMENT PRIMARY KEY,name VARCHAR(10) NOT NULL,age TINYINT UNSIGNED);
方法二:通过查询现存表创建,新表会被直接插入查询而来的数据(注意:此方法复制表结构,但不会复制字段的修饰符信息,原表的数据会被复制。)
CREATE TABLE vmlab SELECT * FROM students;从students表提取数据创建新表vmlab

方法三:通过复制现存表的表结构,但不复制数据(注意:此方法复制表结构,但不会复制原表的数据。)
CREATE TABLE vmlab LIKE students;参考现存表students创建新表vmlab。

3. 删除表:

drop table vmlab;

4. 修改表:
修改表基本上都是针对列操作,生产环境基本上很少需要修改,必须字段意味着需求变更。对表的所有修改操作都需要使用ALTER TABLE 然后指定表名,再指定操作类型:添加操作用ADD、删除操作用DROP、更改操作用CHANGE,添加修改操作相当于重新字义字段,所以必须要指定数据类型。

表重命名: ALTER TABLE vmlab RENAME vmlab1;
插入字段:插入字段实际上就是新定义字段因此必须指定数据类型
ALTER TABLE vmlab ADD phone CHAR(11) AFTER age; //在vmlab1表的age列后插入新列名为phone,数据类型为char 长度为11个字符。
ALTER TABLE vmlab ADD ID int UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY FIRST; 在首列添加一列并定义为主键。
ALTER TABLE vmlab ADD Gender ENUM('M','F','S'); //不指定位置则在表最后一列添加新的字段,ENUM为列表类型。

修改字段数据类型:
ALTER TABLE microcisco MODIFY phone int; //将microcisco表的phone字段数据类型修改为int型
字段改名:
ALTER TABLE vmlab CHANGE COLUMN phone mobile char(11); //将vmlab表中的phone字段改名为mobile,并将数据类型改为char类型,长度为11个字符。注意:字段改名必须指定改名后的字段数据类型。
删除字段:
ALTER TABLE vmlab DROP COLUMN phone; //删除vmlab表的phone字段。
修改表字符集:
ALTER TABLE vmlab CHARACTER SET utf8mb4; //修改vmlab表的字符集为utf8mb4。
修改字段数据类型:
ALTER TABLE vmlab CHANGE name name VARCHAR(20);
删除主键:
ALTER TABLE vmlab DROP PRIMARY KEY;
定义主键:
ALTER TABLE vmlab CHANGE id id int UNSIGNED NOT NULL PRIMARY KEY; //注意:定义主键相当于重新定义字段因此必须要指定字段数据类型,尤其要与原来数据类型一致。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯