mysql_day03

复习
MySQL数据库服务器
服务器端、客户端
mysql.exe -h127.0.0.1 -P3306 -uroot -p
mysql -uroot
交换模式、脚本模式
关系型数据库逻辑结构
Server -> Database -> Table -> Row -> Column
SQL命令
show databases;
use tedu;
show tables;
desc student;
quit;
删除数据库tedu,如果存在的话
drop database if exists tedu;
create database tedu;
use tedu;
create table student(
sid int,

);
SQL中的增删改查
insert into student values(‘1’,…);
delete from student where sid=‘2’;
UPDATE 表名称 SET upwd=‘123456’, gender=‘F’ WHERE uid=‘3’;
select * from student;
练习:
创建01_book.sql文件, 丢弃数据库dangdang,如果存在的话;创建数据库卡dangdang,进入该数据库;创建一个保存图书的数据表book,包含 编号(bid),标题(title),作者(author),价格(price),出版时间(pubDate),是否加价购(isAddbuy);
插入4条记录,删除编号为2的记录,修改编号为3的记录,查询所有的数据。

计算机中如何存储英文字符
ASCII: 总共有128个,对所有的英文字符以及标点符号进行了编码。
Latin-1: 总共有256个,兼容ASCII,同时对欧洲符号进行编码。mysql默认使用Latin-1编码。
计算机中如何存储中文字符
GB2312:对常用的6千多个中文字符进行了编码,兼容ASCII码。
GBK:对2万多个汉字进行了编码,兼容ASCII码。
BIG5:台湾 繁体中文进行了编码,兼容ASCII码。
Unicode:对世界上主流的语言中常用的字符进行了编码,兼容ASCII码,不兼容GB2312,GBK,BIG5等系列。具体分为UTF-8,UTF-16,UTF-32等存储方案。
乱码产生的原因
mysql中默认使用Latin-1编码,而Latin-1不存在中文编码。
解决MySQL数据库中乱码——三个地方统一为UTF8
(1) .sql脚本文件另存为utf-8编码
(2) 客户端连接服务器端使用的编码为 UTF8
(3) 服务器端,在创建数据库是存储所使用的编码为 UTF8

1.列类型
创建数据表的时候,指定的列可以存储的数据类型
CREATE TABLE student( name 列类型 );
(1)数值类型 —— 可以不加引号
TINYINT 微整型 占1个字节 -128 ~ 127
SMALLINT 小整型 占2个字节 -32768 ~ 32767
INT 整型 占4个字节 -2147483648 ~ 214743647
BIGINT 大整型 占8个字节
FLOAT(M,D) 单精度浮点型,占4个字节,最大是3.4E38,存储范围远比INT大,可能产生四舍五入。M表示总的有效位数(不包含小数点),D表示小数点后边的有效位数。
DOUBLE(M,D) 双精度浮点型,占8个字节,比BIGINT存储范围大的多。
DECIMAL(M,D) 定点小数,不会产生计算误差;
BOOL 布尔型,只能是TRUE(1)和FALSE(0)

TB  GB  MB  KB  BYTE  BIT  1BYTE=8BIT
1 2 3 ... 9 10
1  10  11  100  101  110  111  1000
12345.6789
1234.56789*10
123.456789*10^2
12.3456789*10^3
1.23456789*10^4

(2)日期时间类型 —— 必须添加引号
DATE 日期类型 ‘2018-08-02’
TIME 时间类型 ‘14:51:25’
DATETIME 日期时间类型 ‘2018-08-02 14:51:25’
(3)字符串类型 —— 必须添加引号
VARCHAR(M) 变长字符串,不会产生空间的浪费,操作速度相对比较慢。M最多存储65535
CHAR(M) 定长字符串,可能产生空间的浪费,操作速度远比VARCHAR快的多。常用语存储固定长度的数据,例如手机号码,身份证号等。M最多存储255
TEXT 大型变长字符串,最多存储能到2G
VARCHAR(5) CHAR(5)
a a\0 a\0\0\0\0
ab ab\0 ab\0\0\0
abc abc\0 abc\0\0
abcd abcd\0 abcd\0
abcde abcde abcde
CREATE TABLE t1(
eid INT,
age TINYINT,
count SMALLINT,
commentCount INT,
price DECIMAL(7,2), #19999.00
phone CHAR(11),
article VARCHAR(5000)
);
练习:
创建02_xuezi.sql,创建数据库xuezi,保存的编码为UTF8,进入该数据库,创建保存笔记本信息的表laptop,包含编号(lid),标题(title),价格(price),库存量(stockCount),上架时间(shelfTime),是否显示在首页(isIndex); 使用适当的列类型
插入4条记录;
练习:
创建03_tedu.sql文件,创建数据库tedu,保存的编码为UTF8,进入该数据库;创建保存公司部门信息的表dept,包含编号(did),部门名称(dname),员工数量(empCount)
10 研发部 3
20 运营部 2
30 市场部 5
创建保存员工信息的表emp,包含编号(eid),姓名(ename),性别(gender),生日(birthday),工资(salary),隶属部门的编号(deptId)
2.列约束
Constraint 约束;MySQL可以对插入的数据进行特定的验证,只有满足条件才会允许插入到数据表中,否则被认为非法的数据,禁止插入。
例如:员工的年龄范围18~65,性别只能是男或女…
在MySQL中一共提供了6种列约束
(1)主键约束 - PRIMARY KEY
声明了主键列上的值不能出现重复,表中查询的记录会按照主键上的值由小到大进行排序。
注意:一个表中只允许有一个主键;通常设置在编号上。

课后练习:
创建xuezi.sql文件,新建数据库xuezi,设置UTF8编码,创建数据表xz_laptop,包含编号(lid),标题(title),价格(price),规格(spec),详细介绍(details),上架时间(shelfTime),是否在售(isOnsale)
插入5条记录
使用合适的列类型和列约束。
《JavaScript高级程序设计》第三版

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值