数据库是按照一定的形式来组织、存储数据,目的是为了对数据操作——增删改查
关系型数据库逻辑结构:Server -> Database -> Table -> Row -> Column
SQL: Structured Query Language,结构化查询语言,用于操作关系型数据库服务器,对数据执行增删改查
使用客户端连接服务器端:例:mysql.exe -h127.0.0.1 -P3306 -uroot -p
-h host 主机
-P port 端口
-u user 用户
-p password 密码
mysql常用管理命令
quit; 退出服务器连接
show databases; 显示服务器上当前所有的数据库
use 数据库名; 进入指定的数据库
show tables; 显示当前数据库中所有的数据表
desc 表名; 描述表中都有哪些列(表头)
SQL命令的两种执行方式
(1)交互模式:客户端输入一行,点击回车,服务器执行一行。适用于临时性的查看数据。
(2)脚本模式:客户端把要执行的多行命令编写在一个文本文件中,一次性提交给服务器执行。适用于批量的操作数据。
mysql -uroot < c:/xampp/..../02.sql 回车
常用的SQL命令
(1)丢弃指定的数据库,如果存在的话
DROP DATABASE IF EXISTS jd;
(2)创建新的数据库
CREATE DATABASE jd;
(3)进入创建的数据库
USE jd;
(4)创建保存数据的表
CREATE TABLE student(
sid INT,
name VARCHAR(8),
sex VARCHAR(1),
score INT
);
(5)向数据表中插入数据
INSERT INTO student VALUES('1','tom','f','80');
(6)查询数据表中所有的数据
SELECT * FROM student;
(7)修改数据
UPDATE student SET score='99',sex='m' WHERE sid='5';
(8)删除数据
DELETE FROM student WHERE sid='3';
解决mysql存储中文乱码
sql脚本文件存储的编码--这里指的是sql语句的编写编码方式utf-8
客户端连接服务器的编码(SET NAMES UTF8)--设置在sql脚本文件的抬头
服务器端创建数据库使用的编码(CHARSET=UTF8)--添加在创建数据库时
mysql中的列类型
创建数据表的时候,指定的列可以存储的数据类型
CREATE TABLE t1( nid 列类型 );
数值型 引号可加可不加
TINYINT 微整型,占1个字节 范围-128~127
SMALLINT 小整型,占2个字节,范围-32768~32767
INT 整型,占4个字节,范围-2147483648~2147483647
BIGINT 大整型,占8个字节
FLOAT 单精度浮点型,占4个字节,最多3.4E38,可能产生计算误差。
DOUBLE 双精度浮点型,占8个字节,范围比BIGINT大的多,也可能产生计算误差
DECIMAL(M,D) 定点小数,不会产生计算误差;M代表总的有效位数,D代表小数点后的有效位数
BOOL 布尔型,只有两个值TRUE/1、FALSE/0,TRUE和FALSE不能加引号;真正存储数据的时候,会变成TINYINT,数据是1和0
日期时间型 必须加引号
DATE 日期型 '2018-10-31'
TIME 时间型 '14:30:50'
DATETIME 日期时间型 '2018-10-31 14:30:50'
字符串型 必须加引号
VARCHAR(M) 变长字符串,不会产生空间浪费,操作速度相对慢,M最大值时65535
CHAR(M)长字符串,可能产生空间浪费,操作速度相对快,M最大值是255;用于存储手机号码、身份证号码等固定长度的字符串。
TEXT(M) 大型变长字符串,M最多2G
CREATE TABLE t1(
id INT,
age TINYINT,
commontCount INT,
price DECIMAL(6,2), #9999.99
phone CHAR(11),
article VARCHAR(5000),
sex BOOL, # 1->男 0->女
pubTime DATE
);
列约束
1.主键约束-PRIMARY KEY
声明了主键约束的列上的值不能出现重复,一个表中只能有一个主键,通常加在编号列。设置了主键约束就不能使用NULL值。
2.非空约束-NOT NULL
声明了非空约束的列上不能插入NULL值
网友评论