Mysql浅尝
1.mysql的登录与退出
输入:mysql -uroot -p -P3306 -h127.0.0.1
退出的三种方式:
mysql > exit;
mysql > quit;
mysql > \q;
2.MYSQL数据库的一些解释
注意:数据库就相当于文件夹
表就相当于文件
3.MySQL注释符
1. #注释内容 (井号)
2. -- 内容 (减减空格)
3. /*内容*/ (斜杠星星斜杠)
4.数据库基本操作
库
增删改查
create database db_name; #创建db_name数据库
drop database db_name; #删除db_name数据库
alter database db_name charset utf8; #更新db_name数据库的编码格式为utf8
show databases; #查看所有数据库
use db_name; #选择db_name数据库
show tables; #查看当前库里面的所有表
select database(); #显示当前数据库名
rename database old_db_name to new_db_name;
表
desc table_name; #查看表的结构
DESCRIBE table_name; #查看表的结构
select * from table_name; #查看表的内容
建立表
CREATE TABLE table_name(
属性名 数据类型 [完整约束条件],
属性名 数据类型 [完整约束条件],
...
属性名 数据类型 [完整约束条件]
);
create table users(
id int(7) AUTO_INCREMENT, #自动增长
username varchar(100) not null,
password varchar(100) not null,
PRIMARY KEY(id), #设置主键(优化大量数据查询速度)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
if not exists #表示当相同表名存在时,则不执行此创建语句,避免语句执行错误
create database if not exists [table_name];
约束条件
PRIMARY KEY #标识该属性为该表的主键,可以唯一的标识对应的元组
FOREIGN KEY #标识该属性为该表的外键,是与之联系,某表的主键
NOT NULL #标识该属性的值不能为空
UNIQUE #表示该属性的值是唯一的
AUTO_INCREMENT #标识该属性的值是自动增加的(Mysql的sql语句特色)
DEFAULT #为该属性设置默认值
常见的数据库引擎
InnoDB(适用于数据处理) myisam(适用于大量数据存储)
修改表的操作
ALTER TABLE old_table_name RENAME new_table_name;
修改字段的数据类型
ALTER TABLE 表名 MODIFY column_name 数据类型;
修改字段名
ALTER TABLE 表名 CHANGE old_column_name new_column_name 新数据类型;
增加字段名
ALTER TABLE 表名 ADD column_name1 数据类型 [完整的约束条件] [FIRST|AFTER column_name2];
删除字段
ALTER TABLE 表名 DROP column_name;
更改表的存储引擎
ALTER TABLE 表名 ENGINE = 引擎名; # InnoDB/myisam
5.数据库的增删改查
增加数据
#指定column_name
insert into 表名 (column_name1,column_name2,...)
values (value1,value2,...);
#若未指定column_name,则添加的值得顺序应和column在表中的顺序完全一致
insert into 表名 values(value1,value2,...);
insert into 表名 set column_name1=value1[,column_name2=value2,...];
删除数据
delete from 表名 [where 条件表达式] #删除表中(部分)数据
TRUNCATE table 表名; #完全删除整个表的记录
更新数据
update 表名 set column_name1=value1 [,column_name2=value2,...] [where 表达式];
查询数据
select username,passwd from 表名 [where 条件表达式];
select * from 表名 [where 条件表达式];
select * from users where id in(1,2,3); #查询id为1,2,3的字段值
select * from users where id is not null; #查询非空字段值
select * from users where username like "m%"; #查询username以m开头的字段值
"%" 代替多个字符,"_"代替单个字符
order by #以order by后的字段名排序
GROUP by #以group by后的字段名进行组排序(例如区分男女生)
limit #limit 0,1 从索引为0的位置开始,限制输出1条数据