目录
1、常用的数据类型
类型 | 说明 |
int | 整型,用于定义整数类型的数据 |
fload | 单精度浮点4字节32位,准确表示到小数点后六位 |
double | 双精度浮点8字节64位 |
char | 固定长度的字符类型,用于定义字符类型数据。 |
varchar | 可变长度的字符类型 |
text | 文本 |
image | 图片 |
decimal(5,2) | 5个有效长度数字,小数点后面有2位。指定长度数组 |
char
char的长度是不可变。char如果存入数据的实际长度比指定长度要小 会补空格至指定长度 如果存入的数据的实际长度大于指定长度,低版本会被截取高版本会报错。
varchar
varchar长度是可变的,默认会加一个隐藏的结束符,因此结束符会多算一个字节。
2、查看数据库
2.1查看当前服务器中的数据库
SHOW DATABASES; #大小写不区分,分号“;”表示结束
2.2查看数据库中包含的表
法一 :在库中查看表
USE 数据库名;
SHOW TABLES;
法二 :在库外查看表
show tables from mysql;
2.3查看表的结构(字段)
法一
USE 数据库名;
DESCRIBE 表名
法二
DESCRIBE[数据库名.]表名;
#DESCRIBE可缩写成DESC
3、SQL语句
SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。
3.1SQL语句分类:
语句 代表的意思
DDL 数据定义语言,用于创建数据库对象,如库、表、索引等(create )
DML 数据操纵语言,用于对表中的数据进行管理(insert drop delete update )
DQL 数据查询语言,用于从数据表中查找符合条件的数据记录(select )
DCL 数据控制语言,用于设置或者更改数据库用户或角色权限(grant )
3.2创建及删除数据库和表
3.2.1创建新的数据库create
CREATE DATABASE 数据库名;
3.2.2创建新的表create
CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);
#主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。
3.2.3删除指定的数据表drop
#如不用USE进入库中,则需加上数据库名
DROP TABLE [数据库名.]表名;
#在库中的话 直接DROP TABLE 表名;
3.2.4删除指定的数据库drop
DROP DATABASE 数据库名;
4、管理表中的数据记录
4.1向数据表中插入新的数据记录insert
法一
insert into 表名(字段1,字段2[,...]) values(字段1的值,字段2的值,....);
法二
insert into 表名 values(字段1的值,字段2的值,....);
例:
#指定全部字段加入值
insert into my(id,name,,passwd,score) values(1,'张三',123456,60);
#不指定字段为表中字段插入所有值
insert into my values (3,'李四',654321,60);
#指定个别字段添加值
insert into my(name,passwd,score) values('王五',123123,70);
#如果此处不指定name那么会报错,因为name设为not null,name字段不能为空
4.2查询表中数据记录 select
#查看所有数据
select * from 表名; *代表所有字段
#查询指定数据
SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];
#以列表方式纵向显示
select * from 表名 \G;
#查询前两行记录
select * from 表名 limit 2;
#表示查看n行后的m行数据记录
select * from 表名 limit n,m; #查看(n+1 ,n+m)行记录
查看所有数据
根据条件查询指定数据
以列表方式纵向显示
查询前两行记录
4.3修改、更新数据表中的数据记录update
使用update的时候一定要加where语句去匹配条件否则会修改表中所有记录
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];
4.4在数据表中删除指定的数据记录delete
DELETE FROM 表名 [WHERE 条件表达式];
5、数据表高级操作
克隆表
法一: 通过like复制
create table 新表名 like 旧表名;
insert into 新表名 select * from 旧表名; #将旧表数据导入新表
法二:创建表的同时导入数据
create table 新表名 (select * from 旧表名);
6、创建临时表
临时表创建成功之后,使用SHOW TABLES命令是看不到创建的临时表的,临时表会在连接退出后被销毁。 如果在退出连接之前,也可以可执行增删改查等操作,比如使用 DROP TABLE 语句手动直接删除临时表。
CREATE TEMPORARY TABLE 表名(字段1 数据类型, 字段2 数据类型(,...] [,PRIMARY KEY(主键名)]);
添加临时表test
create temporary table test (
id int(4) zerofill primary key auto_increment,
name varchar(10) not null,
cardid int(18) not null unique key,
hobby varchar(50));
查看当前库中所有表
show tables; #查看不到临时表
在临时表中添加数据
insert into test values(0001,'zhangsan',123456789,'play');
#查看当前表中所有数据
select * from test;
#退出数据库
quit
重新登录后进行查看
7、数据库用户管理
CREATE USER '用户名'@'来源地址' [IDENTIFIED BY [PASSWORD] '密码'];
‘用户名’:指定将创建的用户名
‘来源地址’:指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录可用通配符%
‘密码’:
若使用明文密码,直接输入’密码’,插入到数据库时由Mysql自动加密;
若使用加密密码,需要先使用SELECT PASSWORD(‘密码’); 获取密文,再在语句中添加 PASSWORD ‘密文’;
若省略“IDENTIFIED BY”部分,则用户的密码将为空(不建议使用)