【MySQL】(2)MySQL基础语法

一、MySQL的基本使用:

1、登录:

mysql -u root -p[password]

2、显示所有数据库:

show databases;

3、进入数据库:

use db_name;

4、显示所有的数据表:

show tables;

5、显示表结构:

desc tb_name;

6、显示所有的表数据:

select *from tb_name;

7、显示所有的表数据:

select 字段名1,字段名2,… 字段名n from tb_name;

8、显示部分的表数据:

select 字段名1,字段名2, … 字段名k from tb_name;

9、导出.sql脚本语句:

mysqldump -uroot -p[password] –databases db_name >d:/a/dd.sql

10、导入.sql脚本语句:

source d:/a/dd.sql

二、MySQL的数据库定义语言(DDL):

1、创建数据库:

create database [if not exists] db_name [character set charset_name];

2、创建数据表:

create table [if not exists] tb_name(
字段名1    字段类型    约束,
字段名2    字段类型    约束,
….
字段名n    字段类型    约束
);

3、更改原有表的结构:

alter table tb_name add column 字段名 字段类型;

alter table tb_name drop column 字段名;

4、更改数据库的全局特性:

alter database db_name [character set charset_name];

alter database db_name [collate collation_name];

5、删除整个表:

drop table [if exists] tb_name [,tb2_name] ;

6、删除整个数据库:

drop database [if exists] db_name;

7、修改表名:

rename table tb_name to new_tb_name;

8、修改列名:

alter table tb_name change column oldName newName 数据类型;

8、修改列的数据类型:

ALTER TABLE tb_name MODIFY COLUMN col_name 新数据类型;

9、定义id为自动增长列:id int auto_increment

id int auto_increment primary key;

10、外键约束:

[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, …)
REFERENCES tbl_name (index_col_name, …)
[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION}]
[ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION}]

例如:constraint husband_key foreign key(wid) references wife(id)

11、主键约束:

id int primary key;

三、MySQL的数据库操纵语言(DML):

1、插入一行数据:

insert into tb_name [(col_name,…)] values(value1,value2,…);

2、删除表中一行数据:

delete from tb_name where where_definition;

3、删除所有表数据:

delete from tb_name;

4、修改某一行数据:

update tb_name SET col_name1=expr1 [, col_name2=expr2 …] [where where_definition];

四、MySQL的select查询:

1、and子句:

select *from tb_name where express1 and express2;

2、or子句:

select *from tb_name where express1 or express2;

3、not子句:

select *from tb_name where 字段名 not in(字段值1,字段值2….);

4、in子句:

字段值在离散字段值系列中:

select *from tb_name where 字段名 in(字段值1,字段值2….);

5、between子句:

在[a,b]区间之中的所有:

select *from tb_name where 字段名 between(值1,值2);

6、like子句(‘%’通配所有字符;‘_’通配单字符):

模糊查询:

(1) 查找所有姓‘张’的人:
select *from tb_name where sname like ‘张%’;

(2)查找姓‘张’名字只有一个字的人:
select *from tb_name where sname like ‘张_’;

(3)查找名字中含有‘张’字的人:
select *from tb_name where sname like ‘%张%’;

7、空字符串‘’和空NULL:

(1)判断是否为空字符用等于号‘=’判断 :
select *from tb_name where sname=”;

(2)判断是否为NULL用 ‘is null’判断:
select *from tb_name where sname is null;

8、‘+’字符代表算术运算加,而非字符串连接符:

9、as子句:

给字段取别名:
select name as 姓名 from tb_name;

10、distinct子句:

输出范围段:
select distinct age from tb_name;

五、MySQL中的聚合函数:

1、count(*)

(1)统计行数,*可以用其他字段代替,还可以用count(1):
select coutnt(*) from tb_name;

(2)用字段 指定的某些行 :
select count(sname) from tb_name;

2、avg()

求平均值:
select avg(age) from tb_name;

3、sum()

求总和:
select sum(sno) from tb_name;

4、max()

求最大值:
select max(age) from tb_name;

5、min()

求最小值:
select min(age) from tb_name;

6、group by

分组:

显示tb_name表中有哪些地址:
select address from tb_name group by address;

select … from … group by … having ….

7、having

具有一些特性:

显示平均年龄大于22的地区及其平均年龄:
select address ,avg(age) from tb_name group by address having age>22;

select … from … group by … having ….

8、order by

排序:
order by;默认排序为升序
order by 字段名 asc 升序;
order by 字段名 desc 降序;

select [distinct] … from … where … order by ..

六、MySQL中的View视图:

1、创建view视图:

create view view_name as select 子句;

视图的操作和表的操作是相同的

2、查询view视图:

select *from view_name ;

3、通过视图可以修改物理表中的数据的:

例如:

(1)建一个学生表stud,含有学号、姓名、年龄、地址字段:
这里写图片描述

(2)向stud中插入数据:
这里写图片描述

(3)显示stud:
这里写图片描述

(4)创建视图studView:
这里写图片描述

(5)显示studView:
这里写图片描述

(6)修改视图中的数据:
这里写图片描述

(7)显示修改后的视图数据:
这里写图片描述

(8)显示stud表数据:
这里写图片描述

此时,stud表中的Tom的sage由12变为了19,因此视图可以修改物理表数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值