mysql 设置字段自动增长值 | 您所在的位置:网站首页 › mysql自动增长语句 › mysql 设置字段自动增长值 |
![]() # 命令行客户端MySQL MySQL是一个关系型数据库管理系统安装MySQL服务端软件使用: sudo apt-get install mysql-server安装MySQL客户端软件使用: sudo apt-get install mysql-client图形化MySQL客户端软件使用Navicat- 查询MySQL服务端是否安装:服务端server ,客户端client - 方法1.apt list | grep mysql-server - 方法2.apt-cache show mysql-server ![]() - 方法3.sudo service mysql status 用于查看服务状态 ![]() - sudo service mysql stop 关闭 - sudo service mysql start 开启,或者重启 sudo service mysql restart - 如果对配置文件【/etc/mysql/mysql.config.d】进行修改,需要重新启动MySQL数据库服务sudo service mysql start 主要配置信息说明:vim /etc/mysql/mysql.config.d/mysqld.cnf 查看配置信息 port表示端口号,默认为3306bind-address表示服务器绑定的ip,默认为127.0.0.1datadir表示数据库保存路径,默认为/var/lib/mysqllog_error表示错误日志,默认为/var/log/mysql/error.log- datadir = /var/lib/mysql 自己创建的数据库存放地址 - sudo pip3 install pymysql pip3为包管理工具,安装第三方的Python包 # SQL基本语法 登录数据库: mysql -uroot -p退出数据库: quit 或者 exit 或者 ctr + d创建数据库: create database 数据库名 charset=utf8;使用数据库: use 数据库名;删除数据库: drop database 数据库名;创建表: create table 表名(字段名 字段类型 约束, ...);修改表-添加字段: alter table 表名 add 字段名 字段类型 约束修改表-修改字段类型: alter table 表名 modify 字段名 字段类型 约束修改表-修改字段名和字段类型: alter table 表名 change 原字段名 新字段名 字段类型 约束修改表-删除字段: alter table 表名 drop 字段名;删除表: drop table 表名;查询数据: select * from 表名; 或者 select 列1,列2,... from 表名;插入数据: insert into 表名 values (...) 或者 insert into 表名 (列1,...) values(值1,...)修改数据: update 表名 set 列1=值1,列2=值2... where 条件删除数据: delete from 表名 where 条件 # MySQL笔记1--MySQL数据库的基本使用--登录数据库 mysql -uroot -p --显示当前时间 select now(); --登出(退出)数据库 exit/quit/ctr+d --查看所有数据库 show databases; --创建数据库 create database python41 charset=utf8; --使用数据库 use python41; --查看当前使用的数据库 select database(); --删除数据库-慎重 drop database python41; --查看当前数据库中所有表 show tables; --创建表 create table students( id int unsigned primary key auto_increment not null, name varchar(10) not null, age tinyint default 0, gender enum("男", "女") default "男" ); --修改表-添加birthday字段 alter table students add birthday datetime not null; --修改表-修改字段类型 alter table students modify birthday date; --修改表-修改字段名和字段类型 alter table students change birthday birth datetime not null; --修改表-删除birthday字段 alter table students drop birth; --查看表结构 desc students; --查看创表SQL语句 show create table students; --查看创库SQL语句 show create database python41; --删除表 drop table students; --查询所有列数据 select * from students; ![]() --查询指定列数据 select name, age from students; - 以上是单表查询,可以省略表名 若不是单表查询 select students.naem, students.age from students; --添加数据--全列插入 insert into students values(0, '张三', 18, default); - 主键列是自动增长,但是在全列插入时需要占位,通常使用空值(0或null或default) 主键列表插入数据的时候可以指定: 0、default、null 这里的default表示使用该字段默认值 --添加数据--部分列插入 insert into students(name, age) values('郭靖',30); --添加数据--全列多行插入 insert into students values(0, '黄蓉', 28, '女'),(0,'黄老邪',50,default); --添加数据--部分列多行插入 insert into students(name, age) values('杨过', 20),('周伯通',55); --修改数据 update students set age=18, gender = '女' where id = 3; --删除数据 delete from students where id = 8; --删除数据可以使用逻辑删除,添加一个标识字段 alter table students add is_del tinyint default 0; 这里删除数据其实修改标识字段 update students set is_del = 1 where id = 7; --as关键字,用户给表的字段和表设置别名 select name as n, age as a from students as s; 提示: as 关键字可以省略,也表示设置别名 --distinct关键字, 用于去除重复的数据行 select distinct age, gender from students; - 根据最后面的一个字段进行去重操作 --查询编号大于3的学生 select * from students where id > 3; --查询编号不大于4的学生 select * from students where id 3 and gender = '女'; --查询编号小于4或没被删除的学生 select * from students where id < 4 or is_del = 0; --查询年龄不在10岁到15岁之间的学生 select * from students where not (age >= 10 and age =3 and id 小排序,当年龄相同时 按照身高从高-->矮排序 select * from students order by age desc, height desc; 默认是asc 不用指定。 --查询前3行男生信息 select * from students where gender='男' limit 0, 3; 简写方式,第一个参数是开始行索引,默认是0可以不指定, 第二个参数是查询条数 select * from students where gender='男' limit 3; --查询学生表,获取第n页数据的SQL语句 select * from students limit (n-1) * m, m; # MySQL笔记2--MySQL数据库的条件查询-- 清屏 system clear -- 查询学生的个数 select count(height) from students; 注意点: 聚合函数不会对空值进行统计 一般如果要是指定列名,那么就是主键字段 select count(id) from students; 通用的写法 select count(*) from students; -- 查询女生的编号最大值 select max(id) from students where gender = '女'; -- 查询未删除的学生最小编号 select min(id) from students where is_del = 0; -- 查询男生的总身高 select sum(height) from students where gender='男'; -- 求男生的平均身高 select sum(height) / count(*) from students where gender='男'; select avg(height) from students where gender = '男'; select avg(ifnull(height, 0)) from students where gender = '男'; ![]() 注意点: 聚合函数不会对空值进行统计 ifnull函数判断指定的字段是否是空值,如果是空值使用默认值0 -- 查询性别的种类 select distinct gender from students; select gender from students group by gender; -- 根据name和gender字段进行分组, 查看name和gender的分组信息 select gender,name from students group by gender,name; -- 根据gender字段进行分组, 查询每个分组的姓名信息 select gender,group_concat(name) from students group by gender; ![]() group_concat:统计每个分组指定字段的信息集合,信息之间使用逗号进行分割 -- 统计不同性别的平均年龄 select gender,avg(age) from students group by gender; -- 统计不同性别的人的个数 select gender,count(*) from students group by gender; -- 根据gender字段进行分组,统计分组条数大于2的 select gender,count(*) from students group by gender having count(*) > 2; -- 对分组数据进行过滤使用having -- 根据gender字段进行分组,汇总总人数 select gender,count(*) from students group by gender with rollup; ![]() -- 根据gender字段进行分组,汇总所有人的年龄 select gender,group_concat(age) from students group by gender with rollup; -- 使用内连接查询学生表与班级表 select s.name, c.name from students s inner join classes c on s.c_id = c.id; ![]() -- 使用左连接查询学生表与班级表 select * from students s left join classes c on s.c_id = c.id; 左连接查询,根据左表查询右表,如果右表数据不存在使用null填充 left左边是左表,left右边是右表 -- 使用右连接查询学生表与班级表 select * from students s right join classes c on s.c_id = c.id; 右连接查询,根据右表查询左表,如果左表数据不存在使用null填充 right左边是左表,right右边是右表 ![]() -- 使用自连接查询省份和城市信息 select c.id, c.title, c.pid, p.title from areas c inner join areas p on c.pid = p.id where p.title = '广东省'; ![]() -- 查询大于平均年龄的学生 select * from students where age > (select avg(age) from students); -- 查询学生在班的所有班级名字 select * from classes where id in (select c_id from students where c_id is not null); ![]() -- 查找年龄最大,身高最高的学生 select * from students where age = (select max(age) from students) and height = (select max(height) from students); 简写: select * from students where (age, height) = (select max(age), max(height) from students); --子查询是一个完整的查询语句,子查询的执行顺序,先执行子查询然后主查询根据子查询的结果再执行 -- 为学生表的cls_id字段添加外键约束 alter table students add foreign key(c_id) references classes(id); - 注意:对已有表格添加外键约束之前,要保证表格的数据符合约束条件 - 添加约束的字段,字段类型应该一致 -- 创建学校表 create table school( id int unsigned not null primary key auto_increment, name varchar(30) not null ); -- 创建老师表添加学校外键 create table teacher( id int unsigned not null primary key auto_increment, name varchar(20) not null, s_id int unsigned, foreign key(s_id) references school(id) ); ![]() -- 删除外键 alter table teacher drop foreign key teacher_ibfk_1; - 注意:要删除的外键名称是 CONSTRAINT后面的‘xxxxxxx’ # MySQL笔记3--MySQL数据库的高级使用-- 创建 "京东" 数据库create database jing_dong charset=utf8;-- 使用 "京东" 数据库use jing_dong;-- 创建一个商品goods数据表create table goods( id int unsigned primary key auto_increment not null, name varchar(150) not null, cate_name varchar(40) not null, brand_name varchar(40) not null, price decimal(10,3) not null default 0, is_show bit not null default 1, is_saleoff bit not null default 0);-- 向goods表中插入数据(将数据保存xxx.sql,使用source ./xxx.sql 命令自动导入)insert into goods values(0,'r510vc 15.6英寸笔记本','笔记本','华硕','3399',default,default); insert into goods values(0,'y400n 14.0英寸笔记本电脑','笔记本','联想','4999',default,default);insert into goods values(0,'g150th 15.6英寸游戏本','游戏本','雷神','8499',default,default); insert into goods values(0,'x550cc 15.6英寸笔记本','笔记本','华硕','2799',default,default); insert into goods values(0,'x240 超极本','超级本','联想','4880',default,default); insert into goods values(0,'u330p 13.3英寸超极本','超级本','联想','4299',default,default); insert into goods values(0,'svp13226scb 触控超极本','超级本','索尼','7999',default,default); insert into goods values(0,'ipad mini 7.9英寸平板电脑','平板电脑','苹果','1998',default,default);insert into goods values(0,'ipad air 9.7英寸平板电脑','平板电脑','苹果','3388',default,default); insert into goods values(0,'ipad mini 配备 retina 显示屏','平板电脑','苹果','2788',default,default); insert into goods values(0,'ideacentre c340 20英寸一体电脑 ','台式机','联想','3499',default,default); insert into goods values(0,'vostro 3800-r1206 台式电脑','台式机','戴尔','2899',default,default); insert into goods values(0,'imac me086ch/a 21.5英寸一体电脑','台式机','苹果','9188',default,default); insert into goods values(0,'at7-7414lp 台式电脑 linux )','台式机','宏碁','3699',default,default); insert into goods values(0,'z220sff f4f06pa工作站','服务器/工作站','惠普','4288',default,default); insert into goods values(0,'poweredge ii服务器','服务器/工作站','戴尔','5388',default,default); insert into goods values(0,'mac pro专业级台式电脑','服务器/工作站','苹果','28888',default,default); insert into goods values(0,'hmz-t3w 头戴显示设备','笔记本配件','索尼','6999',default,default); insert into goods values(0,'商务双肩背包','笔记本配件','索尼','99',default,default); insert into goods values(0,'x3250 m4机架式服务器','服务器/工作站','ibm','6888',default,default); insert into goods values(0,'商务双肩背包','笔记本配件','索尼','99',default,default); -- 查询类型cate_name为 '超级本' 的商品名称、价格 select name, price from goods where cate_name = '超级本'; -- 显示商品的分类 select distinct cate_name from goods; select cate_name from goods group by cate_name; -- 求所有电脑产品的平均价格,并且保留两位小数 select round(avg(price),2) from goods; -- 显示每种商品的平均价格 select cate_name, avg(price) from goods group by cate_name; select cate_name, round(avg(price),2) from goods group by cate_name; -- 查询每种类型的商品中 最贵、最便宜、平均价、数量 select cate_name, max(price), min(price), avg(price), count(*) from goods group by cate_name -- 查询所有价格大于平均价格的商品,并且按价格降序排序 select * from goods where price > (select avg(price) from goods) order by price desc; -- 创建商品分类表 create table goods_cates( -> id int unsigned not null primary key auto_increment, -> name varchar(50) not null); -- 查询goods表中商品的分类信息 select cate_name from goods group by cate_name; -- 将查询结果插入到good_cates表中 insert into goods_cates(name) select cate_name from goods group by cate_name; ![]() -- 添加移动设备分类信息 insert into goods_cates(name) values('移动设备'); -- 查看goods表中的商品分类名称对应的商品分类id select * from goods g inner join goods_cates gs on g.cate_name = gs.name; -- 将goods表中的分类名称更改成商品分类表中对应的分类id,连接更新表中的某个字段 update goods g inner join goods_cates gs on g.cate_name = gs.name set g.cate_name = gs.id; -- 查询品牌信息 select brand_name from goods group by brand_name; -- 通过create table ...select来创建商品品牌表并且同时插入数据 create table goods_brands( id int unsigned not null primary key auto_increment, name varchar(50) not null) select brand_name as name from goods group by brand_name; 注意: 创建的表字段要和插入数据的字段保持一致如 brand_name as name ![]() -- 插入双飞燕品牌 insert into goods_brands(name) values('双飞燕'); -- 查看goods表中的商品品牌对应的商品品牌id select * from goods g inner join goods_brands gs on g.brand_name = gs.name; -- 将goods表中的品牌更改成品牌表中对应的品牌id,连接更新表中的某个字段 update goods g inner join goods_brands gs on g.brand_name = gs.name set g.brand_name = gs.id; -- 通过alter table语句修改表结构,把cate_name改成cate_id,把brand_name改成brand_id alter table goods change cate_name cate_id int not null, change brand_name brand_id int not null; ![]() # 待更新 |
CopyRight 2018-2019 实验室设备网 版权所有 |