MySql的简易操作

来源:互联网 发布:sql sa登陆失败233 编辑:程序博客网 时间:2024/04/27 19:51

一.使用sql对数据库操作
(1)连接数据库
打开cmd,使用命令连接mysql数据库.
命令:mysql -u root -p 密码

(2)创建数据库
命令:create database 数据库的名称;
示例:create database testdb1;

(3)查看所有的数据库
命令:show databases;

(4)删除数据库
命令:drop database 要删除的数据库的名称;
示例:drop database testdb1;

(5)切换数据库
命令:use 要切换的数据库的名称;
示例:use testdb2;

二.使用sql对数据库表进行操作
(1)创建数据库表
语句: create table 表名称(
字段 类型,
字段 类型,
字段 类型
)

(表不能单独存在,它要存放在某一个数据库里面)示例: create table user(        id int,        username varchar(40),        password varchar(40),        sex varchar(30)    )

(2)mysql的数据类型
字符串类型
VARCHAR CHAR
当创建表的时候,使用字符串类型,name VARCHAR(40),指定数据的长度
VARCHAR和CHAR的区别:
1.VARCHAR的长度是可变的,比如name VARCHAR(40),存值a,直接把a存进去.
2.CHAR的长度是固定的,比如name char(5),存值b,把b存进去,后面要加很多空格.
(不管是CHAR还是VARCHAR,长度不能超过定义的长度.)

大数据类型BLOB    TEXT使用这个类型可以存储文件,一般开发,不会直接把文件存到数据路里面,而是存文件的路径.(了解一下即可)数值型tinyint smallint int(不指定默认为11) bigint float double对应java里面:byte short int long float double逻辑性bit对应java里面的boolean型.日期型DATE:用于表示日期 1945-08-15TIME:用于表示时间 19:10:40下面的两个类型可以表示日期和时间DATETIME:手动添加时间到数据表里面TIMESTAMP:自动把时间添加到表里面

(3)查看表结构
语句:desc 表名称;

(4)mysql的约束有三种
第一种:非空约束 not null
表示数据不能为空
第二种:唯一性约束 unique
表中的记录不能重复
第三种:主键约束 primary key
表示非空,唯一性
(可以使之自动增长,后面加auto_increment)

(5)创建带约束的表
create table person(
id int primary key,
username varchar(40) not null,
sex varchar(20)
);

(6)删除表
语句:drop table 表的名称;

(7)查看当前的数据库里面有那些表
语句:show tables;

三.使用sql对表中的记录进行操作(增删改查操作)
(1)向表里面添加记录 insert
语句:insert into 要添加的表名称 values(要添加的值);
示例:insert into user values(1,’aaa’,’123456’,’nan’);

注意:当添加的字段的数据类型是int类型,直接写值如果添加的字段的类型是varchar类型和日期类型,使用单引号把值包起来自动增长的效果创建一个表create table stu (    id int primary key auto_increment,    sname varchar(40))insert into stu values(null,'aaa');insert into stu values(null,'bbb');insert into stu values(null,'ccc');(id是自动增长的.)

(2)删除表里面的记录 delete
语句:delete from 表名称 where 条件;
(不添加where条件,把表里面的所有的记录都删除)
示例:delete from user where id=1;

(3)修改表里面的记录 update
语句:update 表名称 set 要修改的字段的名称1=修改的值1,要修改的字段的名称2=修改的值2 where 条件;
示例:update user set username=’QQQ’,password=’999’ where id=1;

(4)查询表中的记录 select
语句:select 要查询的字段的名称/* from 表名称 where 条件;
练习1:查询user表里面的所有的数据
select * from user;
练习2:查询user表里面用户名和语文成绩
select username,chinese from user;
练习3:查询user表里面的id=2的数据
select * from user where id=2;

(5)别名 as
语句:as 别名
示例:select username (as) u,chinese (as) c from user;

(6)去除显示出来的重复的数据 distinct
语句:select distinct * from 表名;

(7)where子句
第一.运算符< > >= <=
练习:查询user表里面语文成绩大于60的所有的人员
select * from user where chinses > 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;

四.聚集函数
(1)使用提供一些函数,直接实现某些功能
(2)常用的聚集函数
第一,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;

五.分组操作
分组使用 group by 根据分组的字段
在分组的基础之上再进行条件的判断用having,后面可以写聚集函数.(注意:不能用where)
(1)举例说明
* 创建表 orders
create table orders(
id int,
name varchar(40),
price int
);

insert into orders values(1,'电视',2000);insert into orders values(2,'电视',2000);insert into orders values(3,'苹果',10);insert into orders values(4,'手机',500);insert into orders values(5,'手机',500);insert into orders values(6,'鼠标',33);insert into orders values(7,'鼠标',33);

(2)练习一:统计orders表里面每类商品的总的价格
示例:select name,sum(price) from orders group by name;

(3)练习二:对商品进行分类,得到每类商品的总价格大于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;

六.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开始的
** 第二个参数从开始的位置向后获取几条记录
* 练习: 查询limit表里面第二条到第四条记录
select * from user limit 1,3;

0 0