UPDATE user SET upwd = ‘77777’,isOnline = ‘n’ WHERE uid=‘1’;
DELETE FROM user WHERE uid=‘2’;
ASCLL:对128个英文字母及其符号的存储 Latin-1:对256个欧洲字符进行编码,有256个,兼容ASCLL
GB2312 (GB:国家标准) 对常用的6000多汉子进行了编码,兼容ASCLL GBK:对两万多汉字进行编码,兼容GB2312 Unicode:对世界上主流国家常用语言进行了编码,兼容ASCLL。不兼容GB2312,GBK 等,具体使用分为 utf-8,utf-16, utf-32 中文乱码原因:Mysql中默认使用Latin-1编码。
脚本文件另存为的编码为utf8 客户端链接服务器端的代码为utf-8 Set names utf8; 服务器端创建数据库使用编码为utf-8 Create database xz charset=utf8; 练习:编写脚本文件01.sina.sql 先丢弃在创建数据库sina,设置编码为utf-8 ,进入数据库,创建保存新闻数据的表new, 保护有编号nid, 标题title, 发布时间ctime, 详情detail, 来源origin: 插入若干条数据, 修改1条删除1条
#设置客户端连接服务器端编码 SET NAMES UTF8; DROP DATABASE IF EXISTS sina; CREATE DATABASE sina CHARSET=UTF8; #进入sina这个数据库 USE sina; #创建news这个表 CREATE TABLE news( nid INT, title VARCHAR(10), ctime VARCHAR(10), detail VARCHAR(300), origin VARCHAR(12) ); #插入数据 INSERT INTO news VALUES('1','中国梦','2020-7-1','新中国未来发展','凤凰网'); INSERT INTO news VALUES('2','中国梦','2020-7-2','新中国未来发展','科技网'); INSERT INTO news VALUES('3','中国梦','2020-7-3','新中国未来发展','科技网'); INSERT INTO news VALUES('4','未知','2020-7-4','未来发展','华尔街网'); INSERT INTO news VALUES('5','华为梦','2020-7-5','华为未来发展趋势','BBC'); #修改数据 UPDATE news SET origin = '军事网', detail='2020发展目标' WHERE nid='1'; #删除数据 DELETE FROM news WHERE nid='3'; #尽量查询在交互使用 select * from news创建表的时候,指定的列存储的数据类型 Create table t1(id类型)
Tinyint 微整型,占1个字节 TB GB MB KB BYTE(字节) Tinyint 微整型,占1个字节,范围 -128~127 Smallint 小整形,占2个字节, 范围 -32768~32767 Int 整型 范围占4个字节 范围 - 2147483648~ 2147483647 Big 大整型,占8个字节
12345.6789 123456.789e+
Float:单精度,占4和字节,范围比int大很多,存储的精度不够尤其是数字越大影响越大 Double:双精度 占8和字节 Decimal(M,D):定点小数,小数点不会发什么变化,M代表总的有效位数,D代表小数点后的有效位数。 Boolean/bool 布尔型,只有两个值,分别是true(1) 和 false(0);真正的存储的时候会转为tinyint,也可以存储数字。Mysql没有真正的布尔型。常用于存储只有两个的数据,列如是否在线,是否登陆
Varchar(M) 变长字符串,几乎不会产生空间浪费,操作速度相对慢,M的最大值65535,常用存储变化长度的数据,列如用户名,密码,文章 Char(M) 定长字符串,可能会产生空间浪费,操作速度相对快,M的最大的值为255常用存储固定长度的数据,例如身份证,手机号 Text(M) 大型变长字符串,M最大值是2G
练习:使用合理的列类型,编写脚本文件02._xuezi.sql ,先丢弃在创建数据库xuezi,设置编码为utf8,进入数据库,创建保存笔记本数据表laptop, 包含编号lid, 标题title,价格price 库存量stockcount 上架时间sheiftime 是否为首页推荐isindex 插入若条数据
#设置客户端链接服务器端编码 SET NAMES UTF8; #丢弃数据库,如果存在 DROP DATABASE IF EXISTS xuezi; #创建数据库 CREATE DATABASE xuezi CHARSET=UTF8; #进入数据库 USE xuezi; #创建保存数据库笔记本数据的表 CREATE TABLE laptop( lid INT, title VARCHAR(128), price DECIMAL(7,2), stockcount SMALLINT, sheiftime DATETIME, isindex BOOL #可以直接用TINYINT ); #插入数据 INSERT INTO laptop VALUES('1','麒麟990最新芯片搭载新一代屏幕华为笔记本电脑','85122.29','2525','2020-10-15 15:20:30',FALSE); INSERT INTO laptop VALUES('1','麒麟990最新芯片搭载新一代屏幕华为笔记本电脑','7522.29','2525','2020-10-15 15:20:30',FALSE); INSERT INTO laptop VALUES(1,'麒麟990最新芯片搭载新一代屏幕华为笔记本电脑',9522.29,2525,'2020-10-15 15:20:30',TRUE); INSERT INTO laptop VALUES('1','麒麟990最新芯片搭载新一代屏幕华为笔记本电脑','10522.29','2525','2020-10-15 15:20:30',FALSE);输出
对要插入的数据进行特定的验证,只有符合要求才允许插入,列如插入性别只能是男女,或成绩范围 Create table t1 (lid INT 列约束)
声明了主键约束的列上不允许插入重复的指,一个表中只能有一个主键约束,通常加在编号列表,加快查找速度 Null 空,代表一个无法确定的值,列如无法确定员工的生日电话等,无法确定价格,是关键字,不能加引号。 主键列上不允许插入null
声明了唯一约束的列不允许出现重复的值,允许插入NULL,甚至多个null 一个表允许出现多个唯一约束。
(注意: (1)必须加在主键列 (2)必须手动赋值
练习,先丢弃再创建数据库tedu,设置编码UTF8, 创建保存部门数据的表dept,包含部门编号did,部门名称dname(添加唯一约束),插入以下数据 10 研发 20 市场 30 运营 40 测试 创建保存员工数据的表emp,包含有编号eid 姓名ename(非空约束),性别sex(默认值),生日birthday,工资salary,所属部门编号deptId (添加外键约束)
SET NAMES UTF8; DROP DATABASE IF EXISTS tedu; CREATE DATABASE tedu CHARSET=UTF8; USE tedu; CREATE TABLE dept( did INT PRIMARY KEY , dname VARCHAR(10) UNIQUE ); INSERT INTO dept VALUES (10,'研发'), (20,'市场'), (30,'运营'), (40,'测试'); CREATE TABLE emp( eid int PRIMARY KEY AUTO_INCREMENT, ename VARCHAR(8) NOT NULL, sex BOOL DEFAULT 0, birthday DATE, salary DECIMAL(8,3), #eid这列作为外键,这一列的取值到dept表did中取 deptid INT, FOREIGN KEY (deptid) REFERENCES dept(did) ); INSERT INTO emp VALUES(1,'张飞',DEFAULT,'1999-02-13','95620.32',20); INSERT INTO emp VALUES(NULL,'豆芽',DEFAULT,'1099-02-13','95620.32',30); INSERT INTO emp VALUES(NULL,'吃',DEFAULT,'1789-02-13','95620.32',20); INSERT INTO emp VALUES(NULL,'白马',DEFAULT,'1932-02-13','95620.32',10);