SQL简介

 当面对一个陌生的数据库时,通常需要一种方式与它交互,以完成用户所需要的各种工作,这个时候,就要用到SQL语言了。SQL是Structure Query Language(结构化查询语言)的缩写,它是使用关系模型的数据库应用语言,由IBM在20世纪70年代开发出来,作为IBM关系数据库原型System R的原型关系语言,实现了关系数据库中的信息检索。20世纪80年代初,美国国家标准局(ANSI)开始着手制定SQL标准,最早的ANSI标准于1986年完成,就被叫做SQL-86。标准的出台使SQL作为标准关系数据库语言的地位得到了加强。SQL标准目前已几经修改,更趋完善。正是由于SQL语言的标准化,所以大多数关系型数据库系统都支持SQL语言,它已经发展成为多种平台进行交互操作的底层会话语言。

SQL分类

SQL语句主要可以划分为以下3个类别。

  1. DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段,数据库,表,列,索引等数据库对象。常用的语句关键字主要包括create,drop,alter等。
  2. DML(Data Manipulation Language)语句:数据操纵语句,用于添加,删除,更新和查询数据库记录,并检查数据完整性。常用的语句关键字主要包括insert,delete,update,select等。
  3. DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库,表,字段,用户的访问权限和安全级别。主要的语句关键字包括grant,revoke等。

    DDL语句


    在以上的命令行中,mysql代表客户端命令,“-u”后面跟链接的数据库用户,“-p”表示需要输入密码

Your MySQL connection id is 23表示客户端连接ID,这个数字记录了MySQL服务到目前为止的连接次数;每个新连接都会自动加1,现在是23。

Server version: 5.7.20 MySQL Community Server (GPL) 表示MySQL服务器的版本,本例中是5.7.20社区版

创建数据库的语法是

CREATE DATABASE dbname

执行完创建命令后,下面有一行提示“Query OK, 1 row affected(0.00sec)”,这段提示可以分为3部分。“Query OK”表示:所有的DDL和DML(不包括SELECT)操作执行成功后都显示“Query OK”,这里理解为执行成功就可以了,这个是MySQL的一个特点。“1 row affected”表示操作只影响了数据库中一行的记录,“0.00sec”则记录了操作执行的时间。

查看系统中存在哪些数据库命令

SHOW DATABASES;

上面有4个是安装MySQL时系统自动创建的,其各自功能如下

  1. information_schema:主要存储了系统中的一些数据库对象信息,比如用户表信息,列信息,列信息,权限信息,字符集信息,分区信息等。
  2. cluster:存储了系统的集群信息。
  3. mysql:存储了系统的用户权限信息
  4. test:系统自动创建的测试数据库,任务用户都可以使用。

    选择要操作的数据库命令

 USE dbname

删除数据库命令

DROP DATABASE dbname;


可以返现,提示操作成功后,后面却显示了”0 rows affected”,这个提示在MySQL里面
DROP语句操作的结果都是现实“0 rows affected”

创建表

在数据库中创建一张表的基本语法如下:
CREATE TABLE tablename{
column_name_1 column_type_1 constranints
column_name_2 column_type_2 constranints
….
column_name_n column_type_n constranints
}
因为MySQL的表明是以目录的形式存在于磁盘上的,所以表名的字符可以用任何目录名称允许的字符。column_name是列的名字;column_type是列的数据类型;constraints是这个列的约束条件。

创建一张名称为emp表。表中包括ename(姓名),hiredate(雇用日期),和sal(薪水)3个字段,字段类型分别为varchar(10),date,int(2)
CREATE TABLE emp(ename varchar(10),hiredate date,sal decimal(10,2),deptno int(2));

查看表定义命令

DESC tablename

获取更全面的表定义信息,可以查看创建表的SQL语句,命令如下

SHOW CREATE TABLE dbname;

修改表

修改表类型
ALTER TABLE tablename MODIFY[COLUMN] colunm_defintion[FIRST\AFTER col_name]

修改表emp的ename字段定义,将varchar(10)改为varchar(20):

alter table emp modify ename varchar(20);

增加表字段,语法如下

ALTER TABLE tablename ADD[COLUMN] column_defintion[FRISE\AFTER col_name]

在表emp中新增字段age,类型为int(3)

删除表字段,语法如下

ALTER TABLE tablename DROP [COLUMN] col_name

将字段age删除掉

ALTER TABLE emp DROP age;

字段改名,语法如下

ALTER TABLE tablename CHANGE [COLUMN] old_col_name column_defintion[FIRST\AFTER col_name]

例如,将age改名为age1,同时修改字段类型为int(4);

ALTER TABLE emp CHANGE age age1 int(4);

注意:change和modify都可以修改表的定义,不同的是change后面需要写两次列名,不方便,但是change的有点是可以修改列名称,modify不能

修改字段排列顺序
字段增加和修改语法(ADD/CHANGE/MODIFY)中,都有一个可选项first|after column_name,这个选项可以用来修改字段在表中的位置,ADD增加的新字段默认是加在表的最后位置,而CHANGE/MODIFY默认都不会改变字段位置

将新增的字段birth date加在ename之后

修改字段age ,将它放在最前面

注意 : CHANGE /FIRST/AFTER COLUMN这些关键字都属于MySQL在标准SQL上的扩展,在其他数据库上不一定适用。

更改表名,语法如下

ALTER TABLE tablename RENAME [TO] new_tablename

将emp表名修改成emp1

MySQL基础篇之DDL语句相关推荐

  1. 【MySQL基础教程】DDL语句详细介绍

    前言 本文为 [MySQL基础教程]DDL语句 相关内容进行介绍,下边将对数据库操作(包括:查询所有数据库.查询当前数据库.创建数据库.删除数据库.切换数据库等),表操作(包括:查询创建.数据类型.修 ...

  2. MySQL基础篇3——DDL、DML、DCL使用篇

    此笔记来自b站尚硅谷课程,仅做复习使用. 一.创建和管理库 1.创建数据库(CREATE DATABASE) 2.修改数据库(ALTER DATABASE) 3.删除数据库(DROP DATABASE ...

  3. 最全MySQL基础篇

    文章目录 导入表的问题 第三章_最基本的SELECT语句 1. SQL语言的规则和规范 1) 基本规则 2) SQL大小写规范(建议遵守) 3) 注释 4) 命名规则 2. 基本的SELECT语句 1 ...

  4. MySQL基础篇——第11章 DML(数据操作):增删改

    MySQL基础篇--第11章 DML(数据操作):增删改 1. 插入数据(增) INSERT INTO ... 使用 INSERT INTO 语句向表中插入数据(记录) 1.1 方式1:VALUES ...

  5. MySQL——基础篇

    MySQL--基础篇 一.数据库的相关概念 数据库(database) 保存有组织的数据的容器(通常是一个文件或一组文件). 表(table) 某种特定类型数据的结构化清单. 模式(schema) 关 ...

  6. MySQL基础篇:子查询

    文章目录 概述 where型子查询 from型子查询 EXISTS型子查询 复制表子查询 概述 在某些情况下,当进行一个查询时,需要的条件或数据要用另一个select语句的结果,这个时候,就要用到** ...

  7. mysql 基础篇(二) 账号、权限管理

    mysql 基础篇(二) 账号.权限管理.备份与还原 建立账号密码: Grant all on test.* to "cj"@"localhost" ident ...

  8. Mysql基础篇(1)—— 基础概念、DML基本语法和表连接

    前言 Mysql基础篇相关的内容是看了康师傅的视频做的笔记吧 数据库相关概念 DB: 数据库(Database) ​ 存储数据的仓库,本质是一个文件系统.它保存了一系列有组织的数据. DBMS:数据库 ...

  9. 【MySQL基础篇】数据导出导入权限与local_infile参数

    [MySQL基础篇]数据导出导入权限与local_infile参数 问题背景 数据导出测试 创建测试库(在主库进行) 测试数据导出(在从库进行) 测试数据导入(在主库进行) 问题背景 MySQL高可用 ...

最新文章

  1. php memcached 扩展安装目录,php安装memcached扩展
  2. ie在线邮件html编辑器,IE中HTML编辑器的修改与使用.doc
  3. 怎么学python-如何高效学python?这篇文章就是为想学的你写的
  4. 如何查看某个端口被谁占用
  5. 大创idea2018-03-30
  6. 亚洲国家互联网渗透率_发展中亚洲国家如何回应covid 19
  7. 历史精华文章分类汇总,祝大家中秋快乐!
  8. python sys模块 argv用法_python中sys模块的argv
  9. 优麒麟Ubuntu20.04安装各种问题
  10. mysql数据库 性别 优化_BATJ解决千万级别数据之MySQL 的 SQL 优化大总结
  11. linux里netstat与ps,理解proc目录与linux进程、ps命令、netstat命令的关系
  12. 羞,Spring Bean 初始化/销毁竟然有这么多姿势
  13. 没有项目管理经验,怎么报考PMP?
  14. 全球及中国农业微量营养素行业商业模式分析及投资风险预测报告2022-2028年版
  15. window7系统的电脑如何调节亮度?
  16. 基于单片机智能波形发生器设计
  17. 所有网站都通用的自定义弹出框alert
  18. pdf转换软件在线转换
  19. 格式锂电池过放后无法充电,无法识别|救活方法
  20. python可以应用于哪些方面?

热门文章

  1. [附源码]Nodejs计算机毕业设计母婴用品店管理系统Express(程序+LW)
  2. JSTL标签和分页查询
  3. 小学语文教师资格面试试讲真题及答案_咏柳播报文章
  4. 在XEN虚拟化环境中创建HVM模式虚拟机
  5. 根据表名或字段名查数据库
  6. 移动端H5页面的设计稿尺寸大小规范
  7. 中国移动将发力Android及OPhone平台游
  8. python安装 环境变量的设置
  9. Java框架面试题总结
  10. 关于Could not autowire问题的解决