数据库服务器,项目中存储数据;
关系型数据库
逻辑结构
Server->Database->Table->Row->Column
mysql
部署结构:服务器端mysqld.exe、客户端mysql.exe
使用客户端连接服务器端
mysql.exe -h127.0.0.1 -P3306 -uroot -p
mysql -uroot
管理命令
show databases;
use 数据库名称;
show tables;
desc 表名称;
quit;
常用SQL命令
DROP DATABASE IF EXISTS ...
CREATE DATABASE ...
USE ...
CREATE TABLE...
INSERT INTO ...
VALUES();
SELECT * FROM ...
1.常用SQL命令
(1)修改数据
UPDATE user SET phone='19988888888',isOnline='n' WHERE uid='2';
(2)删除数据
DELETE FROM user WHERE uid='3';
2.计算机存储字符
(1)如何存储英文字符
ASCII: 总共有128个,对所有的英文字母及其符号进行了编码
abc 979899
Latin-1: 总共有256个,兼容ASCII码,同时对欧洲符号进行了编码
(2)如何存储中文字符
GB2312: 对6千多常用的汉字进行了编码,兼容ASCII码
GBK: 对两万多汉字进行了编码,兼容GB2312
BIG5: 台湾繁体字编码
Unicode: 对世界上主流国家常用的语言进行了编码,具体存储方案有UTF-8,UTF-16,UTF-32
mysql默认使用Latin-1编码,不兼容中文,所以出现乱码
(3)解决mysql中文乱码
脚本文件另存为的编码为UTF8
客户端连接服务器端的编码为UTF8
服务器端创建数据库使用的编码为UTF8
2.mysql中的列类型
创建表的时候,指定的列可以存储的数据类型
CREATE TABLE t1( nid 列类型 );
(1)数值型——引号可加可不加
TINYINT 微整型,占1个字节,范围-128~127
SMALLINT 小整型,占2个字节,范围-32768~32767
INT 整型,占4个字节,范围 -2147483648~2147483647
BIGINT 大整型,占8个字节,范围很大 FLOAT
单精度浮点型,占4个字节,范围比INT大的多,可能产生计算误差
DOUBLE 双精度浮点型,占8个字节,范围比BIGINT大的多,可能产生计算误差
DECIMAL(M,D) 定点小数,小数点不会变化,几乎不会产生计算误差,M表示总的有效位数,D表示小数点后的有效位数
BOOL 布尔型,只有两个值,分别是TRUE/FALSE,不能加引号;真正存储的时候自动转为TINYINT,TRUE/FALSE自动转为1/0,所以也可以执行存储1/0.
(2)日期时间型——必须加引号
DATE 日期型 '2019-12-25'
TIME 时间型 '15:24:30'
DATETIME 日期时间型 '2019-12-25 15:24:30'
(3)字符串型——必须加引号
VARCHAR(M) 变长字符串,不会产生空间浪费,操作速度相对慢,M最大值是65535
CHAR(M) 定长字符串,可能产生空间浪费,操作速度相对快,M的最大值是255,常用于存储一些固定长度的数据,例如电话号码、身份证号等
TEXT(M) 大型变长字符串,M的最大值是2G
variable character
123456.789*10^-1
12345.6789
1234.56789*10
123.456789*10^2
12.3456789*10^3
1.23456789*10^4 GB - MB - KB - BYTE - BIT (位)
1BYTE=8BIT
CREATE TABLE t1(
id INT,
age TINYINT,
phone CHAR(11),
price DECIMAL(6,2), #9999.99
sex BOOL, # 1-男 0-女
ctime DATETIME, article VARCHAR(5000)
);