MySQL基本操作

一、安装:

默认安装或自定义安装均可,完全安装没必要,因为一般用不到那么多功能。

尽量不要和系统安装在同一个目录下。

二、基本操作:

MySQL数据库同一个用户下存在多个库;

用sql语句或者MySQL命令操作数据库;

sql语句以分号结尾;

登录数据库:

cmd窗口里输入:

mysql -u用户名 -p密码

1、数据库操作: 

查看有哪些数据库:

show databases;

自己创建一个数据库:

create database 数据库名;

其中,first为数据库名称。

删除一个数据库:

drop database 数据库名;

选择要操作的数据库:

use 数据库名

这里可以不加分号,因为这个语句是MySQL自己的。

2、表的操作: 

创建表:

create table 表名(字段名称 字段类型, 字段名称 字段类型......);
create table student(num int(6), name varchar(10), sex varchar(2), age int, schooldata date);
create table book(num int, name varchar, date1 date, price double(5, 2));

删除表:

drop table 表名;

修改表的名字:

alter table 旧表名 rename to 新表名;

查看数据库中有哪些表:

show tables;

3、表结构操作:

查看表的结构:

desc 表名;

增加字段:

alter table 表名 add 字段名 值类型;

修改字段类型(不修改字段名):

alter table 表名 modify 要修改的字段名 新的字段类型;

修改字段名:

alter table  表名 change 旧表名 新表名(数据类型); 

删除字段:

alter table 表名 drop 字段名;

4、表内容的操作:

插入数据:

insert into 表名(要插入的字段名1, 要插入的字段名2......) values(字段值1, 字段值2......);
insert into book(num, name, date1, price) values(1, '人工智能', '2019-7-7', 69);

当要对表中所有字段进行插入的时候,表名后括号及里面的内容可以不用写:

insert into book values(1, '人工智能', '2019-7-7', 69);

更新数据:

update 表名称 set 列名称=新值 where 更新条件;

UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause];
update book set name = "数据挖掘" where num = 1;

删除数据:

delete from 表名称 where 删除条件;

DELETE FROM table_name [WHERE Clause];

如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。

你可以在 WHERE 子句中指定任何条件。

您可以在单个表中一次性删除记录。

查询数据:

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]

查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。

SELECT 命令可以读取一条或者多条记录。

你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据。

你可以使用 WHERE 语句来包含任何条件。

你可以使用 LIMIT 属性来设定返回的记录数。

你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。

 5、delete,drop,truncate 都有删除表的作用,区别在于:

 1、delete 和 truncate 仅仅删除表数据,drop 连表数据和表结构一起删除,打个比方,delete 是单杀,truncate 是团灭,drop 是把电脑摔了。

 2、delete 是 DML 语句,操作完以后如果没有不想提交事务还可以回滚,truncate 和 drop 是 DDL 语句,操作完马上生效,不能回滚,打个比方,delete 是发微信说分手,后悔还可以撤回,truncate 和 drop 是直接扇耳光说滚,不能反悔。

 3、执行的速度上,drop>truncate>delete,打个比方,drop 是神舟火箭,truncate 是和谐号动车,delete 是自行车。

三、MySQL约束:

所谓MySQL约束就是不允许去做某些事情。

唯一约束:

create table student(num int unique, name varchar(11));

注:任意两个null都不相等。

非空元素:not null

create table stu(num int not null, name varchar(11));

同一个字段加多个约束:

create table stu(num int not null unique, name varchar(11));

非空约束和唯一约束的组合称为主键约束:primary key

一般数字类型主键配合MySQL的自动类型增长策略:auto_increment

当一个字段为主键且设置为自增长的时候,插入的值为null就可以自增长了。

外键约束:

单独加,且外键必须是另外一张表的主键。

create table stu(num int primary key auto_increment, name varchar(11), classnum int, foreign key(classnum) references class(num));

create table stu(num int primary key auto_increment, name varchar(11), classnum int, foreign key(classnum) references class(num));

如果表已经创建,在给字段添加外键约束时需要添加括号:

alter table student add (classnum int, foreign key(classnum) references class(num));

四、MySQL查询:

select [字段列表,表达式,函数] from 表名 where 条件表达式;

select [字段 1, 字段2, 字段3......] from 表名 where 条件表达式;

select 表达式(算术表达式) from 表名 where 条件表达式;

distinct 字段1

条件表达式:

等值比较(=),大于,小于,大于等于,小于等于,不等于;

多个条件:and,or;

in():代表在这个取值中只要有一个匹配就可以取出来,如in(800, 1500, 2900)

not in():不在区间范围之内;

between:<=>大于等于 and 小于等于;

is:空永远不等于空,判断一个值是否为空的方式是:is null,反之是is not null;

别名:给字段、表达式、函数、表起别名,在他们后面加个空格然后添加别名即可或使用'as'关键字;

分组查询:

分组:group;

分组函数:sum(),avg(),max(),min(),count();

注意:不在分组函数中的字段,必须存在group by后;

having:

1、子查询情况:

将查询结果作为另一个查询的条件:

例:查询工资最高的员工是谁

select num, salary from employ where salary = (select max(salary) from employ);

2、使用临时表:

查询平均工资最高的部门 :

组函数不可嵌套;

查询结果作为另一个查询的数据源(临时表),当成临时表的过程中必须起别名

select max(avg_salary) from (select avg(salary) as avg_salary from employ group by dept) as avg_table;
select avg_salary, dept from (select avg(salary) as avg_salary, dept from employ group by dept) as avg_employ where avg_salary = (select max(avg_sal) from (select avg(salary) as avg_sal from employ group by dept) as e);

3、多表查询:

select ename, dname from emp, dept where emp.deptno = dept.deptno;

或 

select ename, dname from emp join dept on emp.deptno = dept.deptno;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值