diff --git "a/18 \350\260\242\345\256\270/1.png" "b/18 \350\260\242\345\256\270/1.png" new file mode 100644 index 0000000000000000000000000000000000000000..356199f617b75f36b73f95b532cc02f273c6044d Binary files /dev/null and "b/18 \350\260\242\345\256\270/1.png" differ diff --git "a/18 \350\260\242\345\256\270/20230217 mysql\345\273\272\350\241\250.md" "b/18 \350\260\242\345\256\270/20230217 mysql\345\273\272\350\241\250.md" new file mode 100644 index 0000000000000000000000000000000000000000..e241e86b21d072bd5d5a37d62cb1990912325fce --- /dev/null +++ "b/18 \350\260\242\345\256\270/20230217 mysql\345\273\272\350\241\250.md" @@ -0,0 +1,124 @@ +## 1 SQL的分类 + +| 名称 | 解释 | 命令 | +| :-------------------: | :-------------------------------------------: | :----------------------------------------------------------: | +| DDL (数据定义语言) | 定义和管理数据对象结构,如数据库,数据表等 | 创建(create),修改(alter),删除(drop) show(展示)结构 | +| DML (数据操作语言) | 用于操作数据库对象中所包含的数据 | 增(insert),删(delete),改(update) 数据 | +| DQL (数据查询语言) | 用于查询数据库数据 | 查(select) | +| DCL (数据控制语 言) | 用于管理数据库的语言,包括管理权限及数 据更改 | grant(授权),commit(确认),rollback(回滚) | + +## 2 SQL语法规范 + +1)mysql的sql语法不区分大小写 + +2)命名时:尽量使用26个英文字母大小写,数字0-9,下划线,不要使用其他符号 + +3)建议不要使用mysql的关键字等来作为**表名、字段名、数据库**名等,如果不小心使用,请在SQL语句中使用`(飘号/反引号)引起来,说明 : 反引号用于区别MySQL保留字与普通字符而引入的 (键盘esc下面的键) + +4)数据库和表名、字段名等对象名中间不要包含空格 + +```mysql +reate database my mxdx; + +ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mxdx' at line 1 +``` + +5)同一个mysql软件中,数据库不能同名,同一个库中,表不能重名,同一个表中,字段不能重名 + +## 4.3 SQL脚本中如何加注释 + +SQL脚本中如何加注释 + +- 单行注释:#注释内容(mysql特有的) + +- 单行注释:--空格注释内容 其中--后面的空格必须有 + +- 多行注释:/* 注释内容 */ + +```mysql +create table tt( + id int, #编号 + `name` varchar(20), -- 姓名 + gender enum('男','女') + /* + 性别只能从男或女中选择一个, + 不能两个都选,或者选择男和女之外的 + */ +); +``` + +## 4.4 mysql脚本中的标点符号 + +mysql脚本中标点符号的要求如下: + +1. 本身成对的标点符号必须成对,例如:(),'',""。 + +2. 所有标点符号必须英文状态下半角输入方式下输入。 + + +几个特殊的标点符号: + +1. 小括号(): + - 在创建表、添加数据、函数使用、子查询、计算表达式等等会用()表示某个部分是一个整体结构。 + - 思考: 2+3 * 6 =20 和 (2+3) * 6 =30的区别 + +2. 单引号'':**字符串和日期类型的数据值使用单引号''引起来**,数值类型的不需要加标点符号。 +3. “2023-10--10” +4. 双引号"":列的别名可以使用引号"",**给表名取别名不要用引号**。 +5. 在MySQL中双引号通常等价于单引号 + + +```sql +create table tt( + id int + ; + +ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2 +``` + +```mysql +create table temp( + c char +); +insert into temp values('尚) ; #缺一半单引号 + +insert into temp values(‘尚’) ; #标点符号是中文 +``` + +```mysql +mysql> select * from student; ++------+------+ +| id | name | ++------+------+ +| 1 | 张三 | +| 2 | 李四 | ++------+------+ +2 rows in set (0.00 sec) + +mysql> select id "学号",name "姓名" from student; ++------+------+ +| 学号 | 姓名 | ++------+------+ +| 1 | 张三 | +| 2 | 李四 | ++------+------+ +2 rows in set (0.00 sec) +``` + +# 第5章 MySQL支持的数据类型 + +## 5.1 数值类型:包括整数和小数 + +数值类型主要用来存储数字,不同的数值类型提供不同的取值范围,可以存储的值范围越大,所需要的存储空间也越大。 + +对于MySQL中的数值类型,还要做如下说明: + +- 关键字INT是INTEGER的同义词。 + +- 关键字DEC和FIXED是DECIMAL的同义词。 + + # 作业 + + # ![](D:\develop\MYSQL仓库\mysql-base\18 谢宸\1.png) + +