**
一、命令行操作数据库(sql语句)
**
1、连接数据库
mysql -u用户名 -p密码
示例:
mysql -uroot -p123456
2、退出数据库
示例:
quit /exit/ Crtl+d
3、显示所有数据库(重要)
示例:
show databases ;
4、显示数据库当前时间
示例:
select now();
5、显示数据库当前版本
示例:
select version();
6、创建数据库
create database 数据库名 charset = utf8;
示例:
create database python05 ; --默认字符编码是Latin1(拉丁文)
create database python05new charset = utf8; --指定创建数据库的字符编码
7、显示创建数据库的语句
show create database 数据库名;
示例:
show create database python05new ;--不能带有charset = utf8
8、删除数据库
drop database 数据库名;
drop database python04;
9、查看当前使用的数据库
select database();
select database();
10、使用数据库
use 数据库名;
use python04;
11、查看当前数据库中所有的数据表
show tables;
12、创建数据表
create table 数据表名(字段 类型 约束[,字段 类型 约束])
约束:
- auto_increment 表示自动增长
- not null 表示不能为空
- primary key 表示主键
- default 表示默认值
create table heroes(id int,name varchar(20));
13、查看表结构
desc 数据表名
desc heros;
14、插入数据表
insert into 数据表名 values(各字段的值);
insert into students values(1,"ss",11,180.00,"男",0)
15、查看数据表内容
select * from students
16、修改表结构
(1)alter table 表名 add 列名 类型;
alter table students add birthday datetime;
(2)修改表-修改字段:重命名版
alter table 表名 change 原名 新名 类型及约束;
例:
alter table students change birthday birth datetime not null;
(3)修改表-修改字段:不重命名版
alter table 表名 modify 列名 类型及约束;
例:
alter table students modify birth date not null;
(4)修改表-删除字段
alter table 表名 drop 列名;
例:
alter table students drop birthday;
17、删除表
drop table 表名;
例:
drop table students;
18、显示创建数据表的方式
show create table 数据表名;
示例:
show create table students;
**
二、数据表的增删改查(curd)
**
1、 增加
(1)全列插入
insert into 数据表名 values(字段值,字段值,...,字段值) --有多少字段填多少不能缺省
以studengts数据表结构为例:
+----+------+------+--------+--------+--------+
| id | name | age | high | gender | cls_id |
+----+------+------+--------+--------+--------+
| 1 | 送 | 23 | 180.20 | 男 | 1 |
+----+------+------+--------+--------+--------+
1 row in set (0.00 sec)
注:主键可以用0,null default占位,枚举变量默认从1开始计数
insert into studengts values(0,"虞姬",25,172,"女",1);
insert into studengts values(null,"亚瑟",25,172,"男",1);
insert into studengts values(default,"亚瑟",25,172,"男",1);
(2)插入部分信息
insert into 数据表名(列名,列名) values(对应列的值,对应列的值)
示例:
insert into studengts(name, age) values("小乔",22);
(3)插入多行
insert into 数据表名(列名,列名) values(对应列的值1,对应列的值1) (对应列的值2,对应列的值2 );
示例:
insert into studengts(name, age) values("大乔",22) ,("刘禅",34);
2、修改
update 表名 set 列名=值,.... where 条件
update studengts set name = "太乙真人" where id=8;
3、删除
(1)、物理删
delete from 表名 where 条件;
示例:
delete from studengts where id =4;
(2)、逻辑删
注:实际中都用逻辑删
用一个字段表示该条信息不可以用了
示例:
给studengts表添加一个字段is_delete bit类型默认值是0
alter table studengts add is_delete bit default 0;
r如果删除某条记录的实际操作是更改该条记录的is_delete字段为1
update studengts set is_delete =1 where id =8;
4、基本查询
(1)、查询所有列
select * from 表名 where 条件;
示例:
select * from studengts; --查询所有列所有记录
select * from studengts where id>3; -- 查询所有列列部分记录
(2)查询部分列
select 列名 as 别名,列名 as 别名 from 表名 where 条件;
示例:
select name, age from studengts where id>3;
select name as 姓名, age as 年龄 from studengts where id>3;
5、