【MySQL】DDL数据定义语言、DML数据操作语言、 MySQL的语法规范和要求

SQL

1、 MySQL的语法规范和要求

(1)mysql的sql语法不区分大小写,SQL语句关键字尽量大写

MySQL的关键字和函数名等不区分大小写,但是对于数据值是否区分大小写,和字符集与校对规则有关。

show databases;
SHOW DATABASES;

ci(大小写不敏感),cs(大小写敏感),_bin(二元,即比较是基于字符编码的值而与language无关,区分大小写)

在sql语句中的值,除了数值类型(整数、小数),其他的类型都使用’'引起来。
例如:select * from t_employee where gender ='男';

如果在SQL中需要给字段取别名时,可以给别名加""。
如果别名中间没有空格,"“可以省略,如果有空格,不能使用”"

select id as "编号", `name` as "姓名" from t_stu; #起别名时,as都可以省略
select id as 编号, `name` as 姓名 from t_stu; #如果字段别名中没有空格,那么可以省略""
select id as 编 号, `name` as 姓 名 from t_stu; #错误,如果字段别名中有空格,那么不能省略""

上面的SQL使用``飘号,因为name和系统关键字或系统函数名等预定义标识符重名了。

所有标点符号使用英文状态下的半角输入方式

必须保证所有(),单引号,双引号是成对结束的

(2)命名时:尽量使用26个英文字母大小写,数字0-9,下划线,不要使用其他符号

(3)建议不要使用mysql的关键字等来作为表名、字段名等,如果不小心使用,请在SQL语句中使用`(飘号)引起来

(4)数据库和表名、字段名等对象名中间不要包含空格

(5)同一个mysql软件中,数据库不能同名,同一个库中,表不能重名,同一个表中,字段不能重名

命名规范:
1、必须只能包含 A–Z, a–z, 0–9, _共63个字符
2、不能在对象名的字符间留空格
例如:create database xxx db; #错误的

一般 create database test; 创建test数据库

3、避免重名
同一个DB数据库中,表不能重名,
同一张表中,字段不能重名
同一个DBMS数据库管理软件中,数据库不能重名
4、命名时不要使用关键字
create database database; #错误的

(6)标点符号:

必须成对

必须英文状态下半角输入方式

字符串和日期类型可以使用单引号’’

列的别名可以使用双引号"",给表名取别名不要使用双引号。取别名时as可以省略

如果列的别名没有包含空格,可以省略双引号,如果有空格双引号不能省略。

(7)SQL脚本中如何加注释

单行注释:#注释内容

单行注释:–空格注释内容 其中–后面的空格必须有

多行注释:/* 注释内容 */

#以下两句是一样的,不区分大小写
show databases;
SHOW DATABASES;

#创建表格
#create table student info(...); #表名错误,因为表名有空格
create table student_info(...); 

#其中name使用``飘号,因为name和系统关键字或系统函数名等预定义标识符重名了。
CREATE TABLE t_stu(
    id INT,
    `name` VARCHAR(20)
);

select id as "编号", `name` as "姓名" from t_stu; #起别名时,as都可以省略
select id as 编号, `name` as 姓名 from t_stu; #如果字段别名中没有空格,那么可以省略""
select id as 编 号, `name` as 姓 名 from t_stu; #错误,如果字段别名中有空格,那么不能省略""

2、 SQL分类

SQL:
1、DDL:Data Define Language
数据定义语言,即定义数据的结构。
例如:create,drop,alter
2、DML:Data Manage Language
数据管理语言,对数据值的增、删、改、查
例如:insert,delete,update,select
3、DCL:Data Control Language
数据控制语言,对权限、事务等的控制
例如:grant,revoke,commit,rollback等

DDL:数据定义语言,定义库,表结构等,包括create,drop,alter等

数据定义语言,定义数据的结构

DML:数据操作语言,增删改查数据,包括insert,delete,update,select等

数据管理语言 对数据的增删改查 非常重要的。

DCL:数据控制语言,权限,事务等管理。

对权限、事务等的控制

3、 DDL 简单的

DDL 数据定义语言 即定义数据的结构

create、drop、alter

1、查看所有数据库

show databases;

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| blog               |
| community          |
| dianpingdb         |
| eladmin            |
| girls              |
| gloryofkings       |
| gmall              |
| myblog             |
| myemployees        |
| mysql              |
| performance_schema |
| renren_fast        |
| safety             |
| schooldb           |
| sell               |
| sm                 |
| student            |
| sys                |
| test               |
+--------------------+
20 rows in set (0.01 sec)

mysql>

2、指定使用某个数据库

use 数据库名;
mysql> use test;
Database changed
mysql> desc test;
ERROR 1146 (42S02): Table 'test.test' doesn't exist
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| stu            |
+----------------+
1 row in set (0.00 sec)

mysql>

3、创建数据库

create database 数据库名;

create database 数据库名 charset 'utf8'; #在mysql中字符集名称不要使用utf-8

create database 数据库名 charset 'gbk';
mysql> create database liuawen;
Query OK, 1 row affected (0.00 sec)

mysql> create database liuawen charset `utf-8`;
ERROR 1115 (42000): Unknown character set: 'utf-8'
mysql> create database liuawen charset ‘utf-8’;
ERROR 1115 (42000): Unknown character set: '‘utf'
mysql> create database liuawen charset ‘utf8';
    '> ;
    '> ^C
mysql> create database liuawen charset 'utf8';
ERROR 1007 (HY000): Can't create database 'liuawen'; database exists
mysql> drop database liuawen;
Query OK, 0 rows affected (0.01 sec)

mysql> create database liuawen charset 'utf8';
Query OK, 1 row affected (0.00 sec)

mysql>

4、删除数据库

drop database 数据库名;
mysql> create database liuawen charset 'utf8';
Query OK, 1 row affected (0.00 sec)

mysql> drop database liuawen;
Query OK, 0 rows affected (0.00 sec)

mysql>

5、查看某个库下的所有表格

show tables ;  #前提是前面有use 数据库名;的语句
show tables from 数据库名;
mysql> use  myemployees;
Database changed
mysql> show tables;
+-----------------------+
| Tables_in_myemployees |
+-----------------------+
| departments           |
| employees             |
| jobs                  |
| locations             |
+-----------------------+
4 rows in set (0.00 sec)

mysql> show tables from myemployees;
+-----------------------+
| Tables_in_myemployees |
+-----------------------+
| departments           |
| employees             |
| jobs                  |
| locations             |
+-----------------------+
4 rows in set (0.00 sec)

mysql>

6、创建表格

create table 【数据名.】表名(
	字段名1 数据类型,
	字段名2 数据类型,
	....
);

7、删除表格

drop table 【数据库名.]表名称;

8、查看某个表结构

describe 【数据库名.]表名称;
desc 【数据库名.]表名称;

9、增加一列

alter table 【数据库名.]表名称 add 【column】 字段名 数据类型;
alter table 【数据库名.]表名称 add 【column】 字段名 数据类型 first;
alter table 【数据库名.]表名称 add 【column】 字段名 数据类型 after 另一个字段;

10、删除一列

alter table 【数据库名.]表名称 drop 【column】 字段名;

11、修改列数据类型

alter table 【数据库名.]表名称 modify 【column】 字段名 新数据类型;
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值