MySQL(二)——基本操作

数据库操作

- 创建数据库

CREATE DATABASE

# impact为数据库名
# if not exists可选,防止mysql报错
CREATE DATABASE (if not exists) impact;

- 列出 MySQL数据库列表

SHOW DATABASES

show databases;

- 使用数据库

USE 数据库名

use impact;
Database changed

- 判断当前所处的数据库

SELECT DATABASE()

SELECT DATABASE();

- 删除数据库

DROP DATABASE 数据库名

# runoob为数据库名,IF EXISTS可选,防止mysql报错
DROP DATABASE (IF EXISTS) runoob;

数据库表操作

- 数据库中的所有表

SHOW TABLES

show tables;

- 创建数据表

CREATE TABLE 表名()

# 第一列为表字段名,第二列为数据类型
# 表字段用','隔开
# comment '说明' 可选,字段的属性 可选
create table charact_tbl(
       id int comment '编号',
       name varchar(10) comment '姓名',
       country varchar(10) comment '国家',
       sex varchar(1) comment '性别'
       ) comment '角色表';

- 查询表结构

desc 表名

# 可查询多个表,用逗号隔开
desc charact_tb;

- 查询指定表的建表语句

SHOW CREATE TABLE 表名

show create table charact_tb;

- 修改表名

ALTER TABLE 表名 RENAME TO 新表名

ALTER TABLE charact_tb RENAME TO alter_tbl;

- 删除表单

DROP TABLE (IF EXISTS) 表名

DROP TABLE IF EXISTS charact_tb;

- 删除该表并重新再创建(格式化)

TRUNCATE TABLE 表名

TRUNCATE TABLE charact_tbl;

- 添加表字段

ALTER TABLE 表名 ADD 字段名 类型
会添加到表单的末尾

alter table charact_tb add age int;

- 修改字段类型及名称

  • ALTER TABLE 表名 MODIFY 字段名 类型 ;
    只修改数据类型
alter table charact_tb modify age tinyint;
  • ALTER TABLE 表名 MODIFY 字段名 新字段名 类型
alter table charact_tb change age school varchar(10);

- 删除表字段

ALTER TABLE 表名 DROP 表字段名 ;
如果数据表中只剩一个字段则无法使用DROP来删除字段

alter table charact_tb drop school;

- 从表中查询数据

  • SELECT 列名称 FROM 表名称
# 查询多个列可以用逗号隔开
select name from alter_tbl;
  • SELECT * FROM 表名称
    '*'代表表中的所有列
select * from alter_tbl;

- 在表单中插入数据

INSERT INTO 表名 ( 表字段 )VALUES( 插入的数据 );

insert into user(name,age,school,grade,gender,date)
    ->  VALUES
    -> ("小何",17,"xx大学","大一","女",now());

where子句

用于规定选择的标准,可用于增删查改

  • 查找数据

SELECT 表字段 FROM 表名称 WHERE 表字段 运算符 值

 select * from user where age>17;

AND和OR 运算符

信息的进一步过滤

- AND运算符

# 使用AND显示年龄大于17并且年级是大一
 select * from user where age>17 AND grade="大一";

- OR运算符

# 使用OR显示年龄大于17或者年级是大一
select * from user where age>17 OR grade="大一";

- 同时使用OR和AND运算符

# 使用OR显示年龄大于17或者年级是大一并且年龄小于19
 select * from user where(age>17 OR grade="大一") AND age<19;

LIKE 子句

模糊匹配

- %通配符

  • 在字符后代表着匹配从这几个字符开始
#  查询id以1开始的
select * from user where id LIKE "1%" ;
  • 在字符代前代表着匹配以这几个字符结束
 #  查询id以1结尾的
select * from user where id LIKE "%1" ;
  • 字符两边都有%表示包含
# 查询日期中含有16的
select * from user where date LIKE "%16%" ;

- _运算符

  • 相当于代替任意1个字符
# _代替了年龄的第二位
select * from user where age LIKE "1_" ;

IN操作符

在 WHERE 子句中规定多个值

SELECT 表字段 FROM 表名 WHERE 表字段 IN (表字段值)

SELECT * FROM user WHERE age IN (16,17);

BETWEEN 操作符

选取介于两个值之间的数据范围,和AND连用

SELECT 表字段 FROM 表名 WHERE 表字段 BETWEEN 表字段值1 AND 表字段值2

包括表字段值1,包括表字段值2

select * from user where id BETWEEN 1 AND 3;

在BETWEEN前加NOT,选取范围之外

select * from user where id NOT BETWEEN 4 AND 11;

UNION 操作符

合并两个或多个 SELECT 语句的结果

重复值不会显示

UNION ALL可以显示重复值

排序

ORDER BY 用于定义排序的方式

# 默认升序
select * from employees order by last;

desc降序

select * from employees order by last desc;

asc升序

 select * from employees order by last asc;

分组

group by 把数据分组

# 计数count()
 select age ,count(*) from user group by age;

更新数据

UPDATE 表名 SET 字段名=新值 WHERE 字段名 操作符 值

update user SET school="xxx大学" where age=16;

删除数据

DELETE FROM 表名 WHERE 字段名 操作符 值

delete from user where age<17;

JOIN子句

- INNER JOIN

获取两个表中字段匹配关系的记录
两表之间必须匹配

select * from user inner join employees on employees.id=user.id;

以上等价于

select * from user ,employees where employees.id =user.id;

- LEFT JOIN

获取左表所有记录,即使右表没有对应匹配的记录

select * from employees left join user on employees.id=user.id order by employees.id ;

- RIGHT JOIN

获取右表所有记录,即使左表没有对应匹配的记录

select * from user right join employees on employees.id=user.id order by employees.id ;

SELECT DISTINCT 语句

列出不同的值

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值