数据类型
INT 整型(4个字节)
DOUBLE 浮点数(8个字节),近似值
DOUBLE(5,2)表示最多5位其中必须有2位个数 即最大值为999.99
CHAR()不可变字符长度,不足以空格补齐,占用空间,但是读取速度快
VARCHAR()可变字符长度 内存占用小,但是读取速度慢。
DECIMAL()精确数值数据,最大位数可以是65
DECIMAL(5,2)与DOUBLE用法相似;表示范围为-999.99-999.99
TEXT 大文本数据类型,有字符编码,存储比较大的文本数据,
BLOB 二进制大对象数据,可存储图片音频视频。
DATE 日期类型 格式为yyyy-MM-dd
TIME 时间类型 格式为 hh:mm: ss
TIMESTAMP 时间类型yyyy-MM-dd hh:mm:ss 会自动赋值
DATETIME 日期时间类型yyyy-MM-dd hh:mm:ss
常用的约束
主键约束 PRIMARY KEY(保证数据的唯一性)不能重复,不能为NULL
唯一约束 UNIQUE[KEY]不能重复,可以为NULL
非空约束 NOT NULL
默认约束 DEFAULT
外键约束 FOREIGN KEY
自动增长 auto_incremen
基本的sql操作语句
查看所有数据库
SHOW DATABASES;
使用数据库
USER databas_name; 当然之后使用工具很少使用
删除表
DROP TABLE IF EXISTS table_name;
当前数据库中所有表
SHOW TABLES;
查看表的字段信息
DESC table_name;
在已知表中举例为USER增加一列image列
ALTER TABLE USER ADD image BLOB;
修改address列使其长度为60
ALTER TABLE USER MODIFY address VARCHAR(60);
删除image列一次只能删一列
ALTER TABLE USER DROP image;
修改表名
RENAME USER TO t_user;
查看创建表中的细节
SHOW CREATE TABLE USER ;
修改字符为Gbk
ALTER TABLE USER CHARACTER SET gbk;
将列名·NAME·修改为username;
ALTER TABLE USER CHANGE `name` username VARCHAR(20);
1、插入操作
语法INSERT INTO +TABLE名(列名1+列名2。。。。)VALUES(列值1,列值2。。)
列名与列值的类型、个数、顺序要一一对应。
可以把列名当做java中的形参,把列值当做实参。
参数不要超出列定义的长度。
如果插入空值,请使用NULL
插入的日期和字符一样,都使用单引号括起来。
```sql
SQL> CREATE TABLE student
(
id INT NOT NULL,
name VARCHAR(50),
age INT,
address VARCHAR(100)
);
```
如需要依次添加多个数据只需在多个插入值之间加个逗号。
INSERT INTO student(id,NAME,age,address) VALUES (1,'zhangsan',20,'北京海淀');
INSERT INTO student(id,NAME,age,address) VALUES (2,'lisi',22,'上海浦东');
INSERT INTO student(id,NAME,age,address) VALUES (3,'wangwu',23,'北京昌平');
注:插入中文需要设置编码 否则会报错。
修改方法
1、查看数据库信息
SHOW VARIABLES LIKE 'character%';
临时更改客户端和服务器结果集的编码
SET character_set_client=gbk;
SET character_set_results=gbk;
或者简单粗暴直接改
SET NAMES ‘gbk’;
2、修改操作 UPDATE:
语法:UPDATE 表名 SET 列名1=列值1,列名2=列值2 ... WHERE 列名=值
练习:
将所有学生的年龄修改为25。
UPDATE student SET age=25;
将id为’1’的地址修改为“河北保定”。
UPDATE student SET address='河北保定' WHERE id=1;
将姓名为’曹操''的学生年龄改为50,地址改为"河南郑州"’。
UPDATE student SET age=50, address='河南郑州' WHERE NAME='曹操';
将所有学生的年龄加5岁。
UPDATE student SET age=age+5;
3、删除操作
删除表中名称为’zhangsan’的记录。;
DELETE FROM student WHERE NAME='zhangsan';
删除表中所有记录。
DELETE FROM student ;
使用TRUNCATE删除表中记录。(先把表删除,然后再创建空表)
TRUNCATE TABLE student ;
- DELETE 删除表中的数据,表结构还在;删除后的数据使用日志可以找回。
- TRUNCATE 删除是把表直接DROP掉,然后再创建一个同样的新表。
- TRUNCATE 删除的数据不能找回。执行速度比DELETE快。
##### 2.6客户端工具
使用命令虽然可以完成基本操作,为了更方便用户操作和使用MySQL数据,市面上出现很多第三方的客户端管理工具比如:SQLyog和Navicat
演示:SQLyog的使用(网上下载-免费)
演示:Navicat的使用(付费软件)
DQL数据查询(重点)