下面是my sql常用的sql语句操作命令,供大家参考: 1、使用sql对数据库操作 连接数据库命令: mysql -u root -p密码 创建数据库:create database dbname; 查看所有的数据库:show databases; 删除数据库: drop database dbname; 切换数据库:use dbname; 2、使用sql对数据库表操作 创建数据库表:语句 create table tablename ( 字段类型, 字段类型 ) 创建表 user,字段 id username password sex create table user ( id int, username varchar(40), password varchar(40), sex varchar(30) ) mysql的数据类型 字符串型 VARCHAR、CHAR 当创建表时候,使用字符串类型,name varchar(40),指定数据的长度 varchar和char的区别 varchar的长度是可变的,比如name varchar(5),存值a ,直接把a存进去 char的长度是固定的,比如 name char(5),存值b,把b存进去,后面加很多空格 大数据类型BLOB、TEXT 使用这个类型可以存储文件,一般开发,不会直接把文件存到数据库里面,存文件的路径 数值型TINYINT、SMALLINT、INT、BIGINT、FLOAT、DOUBLE 对应java里面byte short int long float double 逻辑性 BIT 类似java里面的boolean 日期型 DATE:用于表示日期 1945-08-15 TIME:用于表示时间 19:10:40 下面的两个类型可以表示日期和时间 DATETIME:手动添加时间到数据表里面 TIMESTAMP:自动把时间添加到表里面 查看表结构: desc tablename; mysql的约束有三种: 第一种,非空约束 not null 表示数据不能为空 第二种,唯一性约束 unique 表中的记录不能重复的 第三种,主键约束 primary key 表示非空,唯一性 自动增长 auto_increment 创建带约束的表: create table person ( id int primary key , username varchar(40) not null, sex varchar(20) ) 删除表: drop table tablename; 查看当前的数据库里面有哪些表: show tables; 3、使用sql对表中的记录进行操作(增删改查操作) (1)向表里面添加记录insert insert into user values(1,'aaa','123456','nan'); 自动增长的效果,创建一个表 create table stu ( id int primary key atuo_increment, sname varchar(40) ) insert into stu values(null,'aaa'); (2)修改表里面的记录update 修改user表里面id=1的username修改为QQQ,修改password为999 update user set username='QQQ',password='999' where id=1; (3)删除表里面的记录delete 删除user表里面id=1的记录 delete from user where id=1; 不添加where条件,把表里面的所有的记录都删除 (4)查询表中的记录select 查询user表里面的所有的数据: select * from user; 查询user表里面用户名和语文成绩: select username,chinese from user; 查询user表里面id=2的数据: select * from user where id=2; (4)别名 as 别名: select username as u1,chinese as c1 from user; (5)distinct,去除表里面重复记录 语句 select distinct * from tablename; (6)where子句 第一,运算符 < > >= <= 查询user表里面语文成绩大于60的所有的人员 select * from user where chinese > 60; 第二,in:在范围内 查询user表里面英语成绩是80、90的人员的信息 select * from user where english in (80,90); 第三,and:在where里面如果有多个条件,表示多个条件同时满足 查询user表里面语文成绩是100,并且英语成绩是30的人员的信息 select * from user where chinese=100 and english=30; 第四,得到区间范围的值 查询user表里面语文成绩在70-100之间的值 写法一,select * from user where chinese >=70 and chinese <=100; 写法二,select * from user where chinese between 70 and 100; 第五,like:模糊查询 查询user表里面username包含a的人员信息 Select * from user where username like '%a%'; (7)查看当前的运行的数据库 select database(); (8)对表中查询的记录排序order by order by写在select语句的最后 第一,升序 order by要排序字段 asc(asc可以省略,默认的情况下就是升序) 对user表里面查询的数据,根据语文成绩进行升序排列 select * from user order by chinese asc; 第二,降序 order by要排序字段 desc 对user表里面的英语成绩进行降序排列 select * from user order by english desc; 4、聚集函数 第一,count()函数,根据查询的结果,统计记录数 写法 select count(*) from ...where.... 查询user表里面有多少条记录 select count(*) from user; 查询user表里面语文成绩大于60的人员有多少 select count(*) from user where chinese>60; 第二,sum()函数,求和的函数 写法 select sum(要进行求和字段) from ...where.... 得到user表里面的语文的总成绩 select sum(chinese) from user; 得到user表里面语文总成绩,英语的总成绩 select sum(chinese),sum(english) from user; 得到user表里面语文成绩的平均分(总的成绩/总的人数) select sum(chinese)/count(*) from user; 第三,avg()函数,计算的平均数的函数 写法 select avg(要计算平均数的字段名称) from ... 得到user表里面语文成绩的平均分 select avg(chinese) from user; 第四,max()函数:计算最大值 写法 select max(字段) from... 第五,min()函数:计算最小值 写法 select min(字段) from... 得到user表里面语文成绩的最高分数,英语的成绩最低分数 select max(chinese),min(english) from user; 5、分组操作 分组使用 group by根据分组的字段 在分组的基础之上再进行条件的判断 having,后面可以写聚集函数 (1)举例说明 创建表 orders create table orders ( id int, name varchar(40), price int ) orders表里面每类商品的总的价格 select name,sum(price) from orders group by name; 对商品进行分类,得到每类商品的总价格大于66的商品 select name,sum(price) from orders where sum(price)>66 group by name; 上面的语句在逻辑上没有问题,在语法上,where里面不能写聚集函数,报错 正确的写法: select name,sum(price) from orders group by price having sum(price)>66; 6、mysql的关键字limit (1)limit关键字查询表中的某几条记录 (2)limit关键字不是标准sql的关键字,只能在mysql数据库里面使用,实现分页的功能 在oracle里面特有关键字rownum 在sqlserver里面特有关键字top (3)使用limit查询前几条记录 写法: limit前几条记录 limit 3 查询user表里面前三条记录 select * from user limit 3; select * from user limit 0,3; (4)使用limit查询第几条到第几条记录 写法: limit第一个参数,第二个参数 第一个参数开始的记录数的位置,从0开始的 第二个参数从开始的位置向后获取几条记录 查询user表里面第二条到第四条记录 select * from user limit 1,3; 7、重置mysql的root密码 (1)知道密码,修改密码 连接mysql数据库--->切换数据库 mysql use mysql---->-进行密码的修改 update user set password=password('要修改成的密码的值') where user='root';---->重新启动mysql服务 (2)忘记密码,重置密码 把mysql的服务关闭---->打开cmd窗口,输入命令mysqld --skip-grant-tables(不要加分号)---->再打开cmd窗口,连接数据库,不需要输入密码 mysql -u root--->切换数据库 mysql use mysql---->进行密码的修改 update user set password=password('要修改成的密码的值') where user='root';---->把两个cmd窗口都关闭,打开任务管理器,找到mysqld进程,结束----->启动mysql服务
信息发布:广州名易软件有限公司 http://www.myidp.net
|