MySQL学习笔记(一)

77 阅读4分钟

SQL

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库 查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统

SQL的分类

  • 数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列 等
  • 数据操作语言:简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新
  • 数据查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录
  • 数据控制语言:简称DCL(Date Control Language),用来定义数据库的访问权限和安全级别, 及创建用户

DDL操作 数据库

创建数据库

创建指定名称的数据库,并且指定字符集(一般都 指定utf-8)

create database 数据库名 character set 字符集;
CREATE DATABASE db1_1 CHARACTER SET utf8;

查看/选择数据库

  • use 数据库  use 数据库
  • select database(); 查看当前正在使用的数据库
  • show databases;   查看Mysql中 都有哪些数据库
  • show create database 数据库名; 查看一个数据库的定义信息

删除数据库

drop database 数据库名

DDL 操作 数据表

常用的数据类型

  • int 整型
  • double 浮点型
  • varchar 字符串型
  • date 日期类型,给是为 yyyy-MM-dd ,只有年月日,没有时分秒

创建表

CREATE TABLE 表名(
  字段名称1 字段类型,
  字段名称2 字段类型
)

查看表

show tables; 查看当前数据库中的所有表名
desc 表名; 查看数据表的结构 

删除表

drop table 表名; 删除表(从数据库中永久删除某一张表)
drop table if exists 表名; 判断表是否存在, 存在的话就删除,不存在就不执行删除

修改表

修改表名

rename table 旧表名 to 新表名

修改表的字符集

alter table 表名 character set 字符集

向表中添加列, 关键字 ADD

alter table 表名 add 字段名称 字段类型

修改表中列的 数据类型或长度 , 关键字 MODIFY 

alter table 表名 modify 字段名称 字段类型

修改列名称 , 关键字 CHANGE

alter table 表名 change 旧列名 新列名 类型(长度)

删除列 ,关键字 DROP

alter table 表名 drop 列名

DML 操作表中数据

SQL中的DML 用于对表中的数据进行增删改操作

插入数据

insert into 表名 [(字段名1,字段名2...)] values(字段值1,字段值2...)

方式1: 插入全部字段, 将所有字段名都写出来

INSERT INTO user (uid, uname, age) values(1, '小明', 18)

方式2: 插入全部字段,不写字段名 

INSERT INTO USER VALUES(2, '张三', 20)

方式3:插入指定字段的值

INSERT INTO USER(uname) VALUES('李四')

更改数据

语法格式1:不带条件的修改

update 表名 set 列名 =

语法格式2:带条件的修改

update 表名 set 列名 = 值 [where 条件表达式: 字段名 = 值 ]
UPDATE USER SET uid = 3, age = 22 WHERE uname = '李四'

删除数据

语法格式1:删除所有数据

不推荐. 有多少条记录 就执行多少次删除操作. 效率低

delete from 表名

推荐. 先删除整张表, 然后再重新创建一张一模一样的表. 效率高

truncate table 表名

语法格式2: 指定条件 删除数据

delete from 表名 [where 字段名 = 值]
DELETE FROM USER WHERE uname = '李四'

DQL 查询表中数据

简单查询

select 列名 from 表名

查询所有数据

SELECT * FROM USER;

查询一些列的数据

SELECT uid, uname FROM USER;

查询并且给列起别名

SELECT uid, uname AS '姓名' FROM USER;

查询并且去重

SELECT DISTINCT uname FROM USER;

查询结果后运算,不影响源数据

SELECT uname, age + 10 FROM USER;

条件查询

先取出表中的每条数据,满足条件的数据就返回,不满足的就过滤掉

select 列名 from 表名 where 条件表达式

运算符

  • > < <= >= = <> !=         大于、小于、大于(小于)等于、不等于
  • BETWEEN ...AND...            显示在某一区间的值
  • IN(集合)                             集合表示多个值,使用逗号分隔
  • LIKE '%张%'                       模糊查询
  • IS NULL                             查询某一列为NULL的值, 注: 不能写 = NUL

逻辑运算符

  • And &&         多个条件同时成立
  • Or ||                多个条件任一成立
  • Not                 不成立,取反

模糊查询 通配符

  • %      表示匹配任意多个字符串
  • _       表示匹配 一个字符