diff --git "a/50 \345\274\240\350\265\267\347\221\236/20230220 MySQL\344\271\240\351\242\230\345\217\212\345\237\272\347\241\200\347\254\224\350\256\260.md" "b/50 \345\274\240\350\265\267\347\221\236/20230220 MySQL\344\271\240\351\242\230\345\217\212\345\237\272\347\241\200\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..779f52bca36d9d5d6d1e196d177f5ae01de6daea --- /dev/null +++ "b/50 \345\274\240\350\265\267\347\221\236/20230220 MySQL\344\271\240\351\242\230\345\217\212\345\237\272\347\241\200\347\254\224\350\256\260.md" @@ -0,0 +1,234 @@ +### 数据库: + +##### mysql脚本中的标点符号; + + mysql脚本中标点符号的要求如下: + +1. 本身成对的标点符号必须成对,例如:(),'',""。 + +2. 所有标点符号必须英文状态下半角输入方式下输入。 + + 几个特殊的标点符号: + +3. 小括号(): + + * 在创建表、添加数据、函数使用、子查询、计算表达式等等会用()表示某个部分是一个整体结构。 + * 思考: 2+3 * 6 =20 和 (2+3) * 6 =30的区别 + +4. 单引号'':**字符串和日期类型的数据值使用单引号''引起来**,数值类型的不需要加标点符号。 + +5. “2023-10--10” + +6. 双引号"":列的别名可以使用引号"",**给表名取别名不要用引号**。 + +7. 在MySQL中双引号通常等价于单引号 + +  mysql语句格式: + +  1.#演示整数类型 + +      #创建一个表格,表格的名称“t_int”, + +      #包含两个字段i1和i2,分别是int和int(2)类型 + +```mysql + #create table t_int(i1 int,i2 int(2)); + create table t_int( + i1 int, + i2 int(2) #没有unsigned zerofill,(2)没有意义 + ); +``` + +2.#查看当前数据库的所有表格 + +```mysql +show tables; + show tables from 数据库名; +``` + +3.#查看表结构 + +```mysql +desc 表名称; + desc t_int; +``` + +4.#添加数据到表格中 + +```mysql +insert into 表名称 values(值列表); + insert into t_int values(1,1); + insert into t_int2 values(1,1); +``` + +5.#查询数据 + +```mysql +select * from 表名称; + select * from t_int; + select * from t_int2; +``` + +### sql语法规范: + +(1)mysql的sql语法不区分大小写 + +* A:数据库的表中的数据是否区分大小写。这个的话要看表格的字段的数据类型、编码方式以及校对规则 。排序 + +​ ci(大小写不敏感),cs(大小写敏感),_bin(二进制,即比较是基于字符编码的值而与language无关,区分大小写) + +* B:sql中的关键字,比如:create,insert等,不区分大小写。但是大家习惯上把关键字都“大写”。 + +(2)命名时:尽量使用26个英文字母大小写,数字0-9,下划线,不要使用其他符号 + +(3)建议不要使用mysql的关键字等来作为**表名、字段名、数据库**名等,如果不小心使用,请在SQL语句中使用`(飘号/反引 号)引起来,说明 : 反引号用于区别MySQL保留字与普通字符而引入的 (键盘esc下面的键) + + (4)数据库和表名、字段名等对象名中间不要包含空格 + + (5)同一个mysql软件中,数据库不能同名,同一个库中,表不能重名,同一个表中,字段不能重名 + +## + +# 作业: + +###### 第一题: + +1、创建数据库test01_market + +```mysql +CREATE DATABASE IF NOT EXISTS test01_market; +USE test01_market; +``` + +2.创建表格customers + +```mysql +CREATE TABLE customers( + c_num INT(11), + c_name VARCHAR(50), + c_contact VARCHAR(50), + c_city VARCHAR(50), + c_birth DATE +); +``` + +3:将c_contact字段移动到c_birth字段后面 + +```mysql +ALTER TABLE customers MODIFY c_contact VARCHAR(50) AFTER c_birth; +``` + +4.将c_name字段数据类型改为 varchar(70) + +```mysql +ALTER TABLE customers MODIFY c_name VARCHAR(70); +``` + +5.将c_contact字段改名为c_phone + +```mysql +ALTER TABLE customers CHANGE c_contact c_phone VARCHAR(50); +``` + +6.增加c_gender字段到c_name后面,数据类型为char(1) + +```mysql +ALTER TABLE customers ADD c_gender CHAR AFTER c_name; +``` + +7.将表名改为customers_info + +```mysql +ALTER TABLE customers RENAME TO customers_info; +``` + +8.删除字段c_city + +```mysql +ALTER TABLE customers_info DROP c_city; +``` + +##### 第二题: + +1、创建数据库test02_library + +```mysql +CREATE DATABASE test02_library; +USE test02_library; +``` + +2、创建表格books + +```mysql +CREATE TABLE books( +b_id int(11), +b_name varchar(50), +`authors` VARCHAR(100), +price FLOAT, +pubdate YEAR, +note VARCHAR(100), +num INT(11) +); +``` + +3、向books表中插入记录 + +1) 指定所有字段名称插入第一条记录 + +```mysql +INSERT INTO books(b_id,b_name,`authors`,price,pubdate,note,num) VALUES(1,'Tal of AAA','Dickes',23,'1995','novel',11); +``` + +2)不指定字段名称插入第二记录 + +```mysql +NSERT INTO books VALUES(2,'EmmaT','Jane lura',35,'1993','joke',22); +``` + +3)同时插入多条记录(剩下的所有记录) + +```mysql +INSERT INTO books(b_id,b_name,`authors`,price,pubdate,note,num) +VALUES(3,'Story of Jane','Jane Tim',40,'2001','novel',0), +(4,'Lovey Day','George Byron',20,'2005','novel',30), +(5,'Old land','Honore Blade',30,'2010','law',0), +(6,'The Battle','Upton Sara',30,'1999','medicine',40), +(7,'Rose Hood','Richard haggard',28,'2008','cartoon',28); +``` + +4、将小说类型(novel)的书的价格都增加5。 + +```mysql +UPDATE books set price = price+5 where note = 'novel'; +``` + +5、将名称为EmmaT的书的价格改为40 + +```mysql +UPDATE books set price = 40 WHERE b_name = 'EmmaT'; +``` + +6、删除库存为0的记录 + +```mysql +DELETE FROM books WHERE num = 0; +``` + +##### 第三题: + +1、创建数据库test03_bookstore + +```mysql +CREATE DATABASE test03_bookstore; +USE test03_bookstore; +``` + +2、创建book表 + +```mysql + +``` + + + +