--数据库操作
-- 链接数据库
mysql -uroot -p
mysql -uroot -p<这里是你的密码>
-- 退出数据库
exit/quit/ctrl+d
-- sql语句最后需要有分好;结尾
-- 显示数据库版本
select version();
-- 显示时间
select now();
-- 查看所有数据库
show databases;
-- 创建数据库
-- <可有可无,没有默认是latin>
-- create database <数据库名> <charset=utf8>;
create database python_new;
create database python_new charset=utf8;
-- 查看创建数据库的语句
-- show crate database <想要查询的>
show create database python_new;
-- 查看当前的数据库
select database();
-- 使用数据库
-- use 数据库的名字
use python_new;
-- 删除数据库
-- drop database <数据库名>;
drop database python_new
-- 数据表的操作
-- 查看当前数据表中的内容;
show tables;
-- 创建表
-- auto_increment 表示自动增长
-- not null 表示不能为空
-- primary key 表示主键
-- default 默认值
-- enum("","") 枚举
-- create table 数据表名字 (字段 类型 约束 );
-- 创建 classes表(id, name)
create table xxxx(id int, name varchar(30));
create table yyyy(
id int primary key not null auto_increment,
name varchar(30)
);
-- 查看数据表的内容
-- desc 数据表的名字;
desc xxxx;
-- unsigned 可以定义没有符合
-- 创建students表(id, name, age, high, gender, cls_id);
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"保密",
cls_id int unsigned
);
-- 向表中插入数据
insert into students values(0, "老王", 18, 175.22, "男", 0);
-- 查看插入的数据
select * from students;
-- 创建一个classes表(id,name)
create table classes(
id int unsigned not null auto_increment primary key,
name varchar(30)
);
-- 查看表的创建语句
-- show create table 表名字;
show create table students;
-- 查看表结构
-- 修改表-修改表名
alter table studts rename students;
-- 修改表-添加字段
-- alter table 表名 add 列名 类型及约束;
alter table students add birthday datetime;
-- 修改表-修改字段:不重名版
-- alter table 表名 modify 列名 类型及约束;
alter table students modify birthday date;
-- 修改表-修改字段:重名名版
-- alter table 表名 change 原名 新名 类型及约束;
alter table students change birthday birth date default "1998-01-01";
-- 修改表-删除字段
-- alter table 表名 drop high;
alter table students drop high;
-- 删除表
-- drop table 表名;
drop database 数据库;
drop table 数据表;
-- 增删改查(curd) 代表创建(Create) 更新(Update) 读取(Retrieve) 删除(Delete)
-- 增加
-- 全列加入
-- ubsert [into] 表名 values(...)
-- 主键字段 可以用 0 null default 来占位
-- 向classes表中插入 一个班级
insert into classes values("0", "无敌班");
+--------+----------------------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+----------------------------+------+-----+------------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(30) | YES | | NULL | |
| age | tinyint(3) unsigned | YES | | 0 | |
| gender | enum('男','女','保密') | YES | | 保密 | |
| cls_id | int(10) unsigned | YES | | NULL | |
| birth | date | YES | | 1998-01-01 | |
+--------+----------------------------+------+-----+------------+----------------+
-- 向students 表中插入一个学生的信息 下面三种一样
insert into students values(0, "小肖", 11, "男", 123,"2000-11-23");
insert into students values(Null, "小肖", 11, "男", 123,"2000-11-23");
insert into students values(default, "小肖", 11, "男", 123,"2000-11-23");
-- 失败
--insert into students values(0, "小肖", 11, "第四性别", 123,"2000-11-23");
-- 枚举中 的下标从1 开始 1-->"男" 2-->"女" 3-->"保密"
insert into students values(0, "小肖肖", 11, "1", 123,"2000-11-23");
insert into students values(0, "小肖肖", 11, "2", 123,"2000-11-23");
insert into students values(0, "小肖肖", 11, "3", 123,"2000-11-23");
-- 部分插入
-- insert into 表名(列1,...) values(值1,...)
insert into students (name, gender) values ("小乔", 2);
-- 多行插入
insert into students (name, gender) values ("小李", 1),("小王", 1);
insert into students values(0,"小陈",17,"2",111,"1999-05-19"),(0,"小宁",18,"2",666,"2000-05-19");
-- 修改--全改
-- update 表名 set gender=1;
-- 修改--部分
-- update 表名 set 列1=值1,列2=值2 where 条件;
update students set gender=1 where id=7; -- 把id=7中的gender改成1
update students set age=22, gender=1 where id=3; -- 把id等于3中的age改成22,gender改成1
-- 删除(注意注意,好马不吃回头草,不要轻易使用删除!!!)
-- 物理删除
-- delete from 表名 where 条件
delete from students; -- 一整个数据表中的所有数据全部删除
delete from students where name="小肖" --注意删除之后,原本自动分配的id,会继续往下,不会被删除的影响
-- 逻辑删除
-- 用一个字段来表示 这条信息是否已经不再使用了
-- 给students表中添加一个is_delete字段 bit 类型
alter table students add is_delete bit default 0; -- bit 是二进制
update students set is_delete=1 where id=6; -- 简单说,就是加一个列,来表示删除了,并不是真的删除
-- 查询基本使用
--查询所有列
-- select * from 表名;
-- select * from 表名 where 条件;
select * from students;
select * from students where name="小肖"; -- 查询name为小肖的数据
select * from students where id>3; -- 查询name为"小肖"的使用的数据
-- 指定条件查询
-- 查询指定的列
-- select 列1,列2,... from 表名;
select name,id from students;
-- 字段的顺序
select id as 序号,name as 姓名 from students; --简单说,就是谁在前面,谁先显示
-- 可以使用as为列或者表指定别名
-- select 字段[as 别名], 字段[as 别名] from 数据表 where...;
select name as 姓名 ,id as 序号 from students;
分享給大家,当一些操作不会的时候,说不定我这里有喔!