MySql基本命令

什么是关系型数据库,是建立在关系模型基础上的数据库。关系模型就是指二维模型,即以行和列的形式存储数据。

SQL的分类:

DDL(Data Defintion Language):数据定义语言CREATE、ALTER、DROP等

DML(Data Manipulation Language):数据操作语言SELECT、UODATE、INSERT、DELETE等

DCL(Data Control Language):数据控制语言GRANT、COMMIT、ROLLBACK

数据库的相关操作

创建数据库:create database dbName character set utf8(字符集);

切换数据库:use dbName;

查看数据库服务器中所有的数据库:showdatabases

查看某个数据库的定义信息:showcreate database dbName;

查看当前正在使用的数据库信息:selectdatabase();

删除数据库:dropdatabase dbName;

修改数据的字符集:alter database dbName character set gbk(新字符集);

表的相关操作

创建表

createtable表名(字段名 类型(长度)约束,字段名 类型(长度)约束,……);

约束(单表约束)

主键约束:primary key(默认就是唯一非空的)

唯一约束:unique

非空约束:not null

查看数据库中有哪些表:show tables;

查看表结构:desc表名;

查看表信息:show create table表名;

删除表:drop table表名;

改表名:rename table旧表名to新表名;

修改表的结构语法格式:alter table表名 关键字

关键字有以下几个:

1.add----添加列操作alter table表名add列名 类型;

2.modify--修改列的类型alter table表名modify列名类型;

3.drop --删除列alter table表名drop列名.

4.change--修改列名称alter table表名change旧列名新列名类型;

插入记录:

插入指定列的值:insert into表名(列名1,列名2,…) values (值1,值2);

插入指定列的值:insert into values(值1,值2,…);

注意事项:列名的个数与值的个数对应.

列的类型与值的类型对应,位置也要对应。

类的类型如果是字符串或者日期,写值的时候使用单引号将值引起来.

插入的值的最大长度不能超过列的最大长度.

修改记录:update表名set列名1=值,列名2=值where条件

例:1.将user表中所有人的password修改为”456”

updateuser set password = 456;

2.将user表名字叫tom的用户email修改为[email protected]

updateuser set email [email protected] name = tom;

3.将tom的gender修改为”female”,并且introduce修改为”good girl”

Updateuser set gender = ‘female’ , introduce = ‘good gile’ where name = tom;

删除记录:delete from表名where条件

truncate table表名

关于delete与truncate的区别?(笔试题)

1.delete是一行一行删除truncate是将表结构销毁,在重新创建表结构.

如果数据比较多,truncate的性能高。

2.delete是dml语句

truncatedcl语句

delete是受事务控制.可以回滚数据.

truncate是不受事务控制.不能回滚.

查询操作

查询指定的列:select字段from表名

查询只当字段信息(多列) select字段1,字段2,… from表名;

查询所有列:select * from表名;

去掉重复记录:select distinct字段from表名;(去重)

条件查询

where条件种类:

1.比较运算符

> >= < <= = !=(<>)

2.逻辑运算符

andornot

3.between ...and

相当于>= and <=

注意:between后面的值必须是小值and后面的是大值

4.in

可以比较多个值

5.like

模糊查询

通配符使用:

1.%匹配多个

2._匹配一个

6.null值操作

is null;判断为空

is not null;判断不为空

排序order by

orderby字句是select的最后一个子句。

asc升序(默认)

desc降序

聚合函数

count:统计指定列不为NULL的记录行数;

sum:计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;

max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;

min:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;

avg:计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;

分组操作

分组查询是指使用group by字句对查询信息进行分组,例如:我们要统计出products表中所有分类商品的总数量,这时就需要使用group by来对products表中的商品根据category进行分组操作.

分组后我们在对每一组数据进行统计。

分组操作中的having子名是用于在分组后对数据进行过滤的,作用类似于where条件。

笔试题: having与where的区别:

1.having是在分组后对数据进行过滤.

where是在分组前对数据进行过滤

2.having后面可以使用分组函数(统计函数)

where后面不可以使用分组函数。

你可能感兴趣的:(MySql基本命令)