类型 | 含义 |
---|---|
tinyint(n) | 1个字节,范围(-128~127) |
smallint(n) | 2个字节,范围(-32768~32767) |
mediumint(n) | 3个字节,范围(-8388608~8388607) |
int(n) | 4个字节(32个比特位),整数型,范围(-2147483648~2147483647) |
bigint(n) | 8个字节,整数型,范围(+-9.22*10的18次方) |
float(m,d) | 单精度浮点,8位精度,4字节32位。m数字总个数,d小数位 |
double(m,d) | 双精度浮点,16位精度,8字节64位 。m总个数,d小数位 |
char | 固定长度的字符类型 |
varchar | 可变长度的字符类型 |
text | 文本 |
image | 图片 |
decimal(5,2) | 5个有效长度数字,小数点后面有2位(例如123.56) |
关系型数据库,都是使用SQL语句来管理数据库中的数据。
SQL,即结构化查询语言(Structured Query Language) 。
SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。
数据库的组件(对象):
命名规则:
1、DDL:数据定义语言(Data Definition Language),用于创建数据库对象,如库、表、索引等。
例如:CREATE,DROP,ALTER 等。
2、DML:数据操纵语言(Data Manipulation Language),用于对表中的数据进行管理。
例如: SELECT、UPDATE、INSERT、DELETE 等。
3、DQL:数据查询语言( Data Query Languag ),用于从数据表中查找符合条件的数据记录。
例如: SELECT
4、DCL:数据控制语言(Data Control Language),用于设置或者更改数据库用户或角色权限
例如: GRANT,REVOKE
5、TCL:事务控制语言(Transaction Control Language),用于管理数据库中的事务。 TCL经常被用于快速原型开发、脚本编程、GUI和测试等方面。
例如: COMMIT,ROLLBACK,SAVEPOINT
格式:
方法一:为所有字段插入值
insert into 表名 values (所有字段的值); #每个字段值用逗号相隔;
方法二:为指定字段插入值
INSERT INTO 表名(字段1,字段2[,...]) VALUES (字段1的值,字段2的值,...); #注意字段的属性not null,则必须为该字段插入值
示例:
#为表中所有字段插入值,此种方式密码会以明文显示。
INSERT INTO class1 VALUES(2, '张三', 男, 654321);
#为指定字段插入值
INSERT INTO class1 (id, name, passwd) values (1, '李四', PASSWORD('123456'));
#PASSWORD ('123456'):查询数据记录时,密码字串以加密形式显示。若不使用PASSWORD(),查询时以明文显示。.
#下面这条命令不生效,因为name字段设置了not null,不允许为空值。
INSERT INTO class1 (id, sex, passwd) values (3,男, 123123);
SELECT * FROM class1; #查询表的数据记录
格式:
SELECT * FROM 表名; #查询表中所有记录
#按条件查找数据记录,且只显示指定字段的值
SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];
#表中的记录默认是横向展示的,当字段很多时显示很乱,可以将";"换成"\G",改成纵向展示每条记录。
select * from 表名\G
#mysql的分页语句:
select * from 表名 limit 2;
select * from 表名 limit 2,3; #显示第2行后的前3行(即显示第3~5行)
select * from 表名 limit 19,11; #查看第20行到第30行的记录
select * from 表名 id>=10 and id<=20; #查看id值在10到20之间的数据记录
示例:
SELECT * FROM class1; #查看表中所有数据记录
SELECT id, name, sex FROM class1 WHERE id=2; #查看id为2的数据记录,显示id、name、sex三个字段
select id,name,sex from class1 where id=1 or id=2; #查询id为1或id为2的数据记录
SELECT id, name, sex FROM class1 WHERE name='王五' and sex=女; #查询name为“王五”且性别为女的数据记录。
SELECT * FROM class1\G #以列表方式竖向显示每个字段
SELECT * FROM class1 limit 2; #只显示前2行
select * from class1 limit 2,3; #显示第2行之后的前3行(即显示第3~5行)
格式:
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];
示例:
UPDATE aa SET sex='女',passwd=' ' WHERE id=1;
#修改id为1的数据记录,将score字段值改为77,passwd字段改为无值。
#建议使用唯一性比较好的字段作为指定条件,因为名称可能有重复,但id不会重复。
DELETE FROM 表名 [WHERE 条件表达式]; #删除一定要加条件,不然会删除整个表
例:
DELETE FROM aa WHERE id=2; #删除id字段值为2的数据记录
修改表名和表结构时,都要使用ALTER
语句!
ALTER TABLE 旧表名 RENAME 新表名
例:
ALTER TABLE aa RENAME aaa; #将aa的表名修改为aaa
ALTER TABLE aaa RENAME aa; #将aaa的表名修改回aa