数据库的操作
--链接数据库
mysql -uroot -p
--退出数据库
quit
exit
--查看所有数据库
show databases;
--显示当前数据库的时间
select now();
--显示数据库版本
select version();
--创建数据库
create database homework(数据库名字);
create database homework charset=utf8;
--查看创建数据库的语句
show create dtabase homework;
--删除数据库
drop database homework
--使用数据库
use homework(数据库名字)
--显示当前使用的数据库
select database();
数据表的操作
--查看当前数据库中的所有表
show tables;
--创建表(可以换行,不影响程序)
--create table 表名(字段 类型(长度) 约束,字段 类型(长度) 约束 );
--长度可以不写等同于默认,约束可以不写等同于默认
--约束包括三部分:primary key(表示主键) not null(表示不能为空) auto_increment(表示自动增长)
--enum 枚举,default 默认值
create table python3(id int, name varchar(30));
craete table python4(id int primary key not null auto_incrament, name varchar(30));
--创建students表(id name age high gender class_id)
--unsigned 无符号,正数,数据类型上篇博客介绍了。decimal(5,2) 小数,共5位,小数点后占2位。
create table students(
id int unsigned not null auto_increment primary key,
name varchar(30),
age tinyint unsigned default 0,
high decimal(5,2),
gender enum(‘男’, ‘女’, ‘未知’) default ‘未知’,
class_id int unsigned
);
--查看表结构
desc python3;
--向表中插入数据
insert into students values(0, ‘老王’, 18, 188.00, 'man', 0)
--查看表中的记录
select * from students;
--向表中添加字段
alter table 表名 add 列名 类型
--修改表中的字段,不改变列名
alter table 表名 modify 列名 新类型
--修改表中的字段,改变列名
alter table 表名 change 列名 新列名 新类型
--删除表中的字段
alter table 表名 drop 列名
--删除表
drop table 表名
数据的操作
--插入数据
--自动增长的主键有三种表达方式 0 null default
--枚举类型的下标从数字1开始,1--man 2--woman 3--unknown
insert into students values(0,'xiaohong', 20, 'woman', 1, '1990-01-01');
insert into students values(null,'xiaohong', 20, 'woman', 1, '1990-01-01');
insert into students values(default,'xiaohong', 20, 'woman', 1, '1990-01-01');
insert into students values(0,'xiaohong', 20, 1, 1, '1990-01-01');
--部分插入数据
insert into students (name, gender) values ('xiaogang', 1);
--多行部分插入数据
insert into students(name, gender) values ('xiaoming', 1),('xiaofei', 2);
--多行全部插入数据
insert into students values(default,'xiaohong', 20, 'woman', 1, '1990-01-01'),(default,'xiaoh', 20, 'woman', 1, '1990-01-01');
--修改值
update 表名 set 列1=值1,列2=值2... where 条件
update students set age=20 where name='xiaoming';
update students set age=20,gender=2 where id=3;
--查询全部数据
select * from 表名
--查询指定数据
select * from 表名 where 条件
select * from students where id>3;
--查询指定列
select 列1,列2... from 表名
select name,gender from students;
--查询指定列,并且指定别名,当指定多个列时,显示的顺序就是指定的顺序
select 列1 as 别名1,列2 as 别名2 from 表名
select name as 姓名,gender as 性别 from students; -- 姓名 性别
select gender as 性别,name as 姓名 from students; -- 性别 姓名
--删除全部数据
delect from 表名
--删除指定数据(真删除)
delete from 表名 where 条件
delete from students where name='xiaoming';
--删除指定的数(假删除)
--逻辑删除,添加一个字段 is_delete 类型 bit ,通过设置is_delete的值0/1来表示这条记录是否使用
alter table students add is_delete bit default 0; --添加字段
update students set is_delete=1 where id=3; --将要删除的记录 is_delete设置为1
select * from students where is_delete=1; -- 删除的
select * from students where is_delete=0; -- 删除后的
注意事项:
1. sql 语句以 ;结尾,并且支持换行
2. 数据库涉及字符规范
采用26个英文字母(区分大小写)和0-9这十个自然数,加上下划线’_'组成,共63个字符.不能出现其他字符(注 释除外).
注意事项:
- 以上命名都不得超过30个字符的系统限制.变量名的长度限制为29(不包括标识字符@).
- 数据 对象、变量的命名都采用英文字符,禁止使用中文命名.绝对不要在对象名的字符之间留空格.
- 小心保留词,要保证你的字段名没有和保留词、数据 库系统或者常用访问方法冲突
- 保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性.假如数据类型在一个表里是整 数,那在另一个表里可就别变成字符型了.
3.数据库命名规范
数据库,数据表一律使用前缀。
正式数据库名使用小写英文以及下划线组成,尽量说明是那个应用或者系统在使用的.比如:
web_19floor_net
备 份数据库名使用正式库名加上备份时间组成,如:
web_19floor_net_20070403
4.数据库表命名规范
数据表名使用小写英文以及下划线组成,尽量说明是那个应用或者系统在使用的.
相关应用的数据表使用同一前缀,如 论坛的表使用cdb_前缀,博客的数据表使用supe_前缀,前缀名称一般不超过5字。
比如:
web_user
备 份数据表名使用正式表名加上备份时间组成,如:
web_user_20070403
5.字段命名规范
字段名称使用单词组合完成,首字母小写,后面单词的首字母大写,最好是带表名前缀.
如 web_user 表的字 段:
userId
userName
表与表之间的相关联字段要用统一名称,
如 web_user 表 里面的 userId 和 web_group 表里面的 userId 相对应。
6.字段类型规范
规则:用尽量少的存储空间来存 数一个字段的数据.
比如能用int的就不用char或者varchar
能用tinyint的就不用int
能用 varchar(20)的就不用varchar(255)