数据库的基本概念
1.数据库是什么?
数据库就是存储数据,管理数据的仓库.
2.数据库的特点是什么?
1.持久化保存数据.
2.存储方便且容易管理.
3.操作数据库有统一的规范.
Windows 下命令行的简单MySQL命令
用管理员方式运行cmd.exe
开启MySQL服务
net start mysql
关闭MySQL服务
net stop mysql
MySQL登录
语法: mysql -u用户名 -p密码
建议登录时隐藏密码
mysql -u用户名 -p
Enter password : 输入密码
退出MySQL
直接敲 exit 或者 quit
SQL
1.什么是SQL?
SQL 就是结构化查询语言,通俗讲就是定义了操作所有关系型数据的规则,当然每一中数据库操作的方式存在不一样的地方,我们称其不同的地方为”方言”.
2.SQL的通用语法
1.SQL 以 ; 结尾 , 使用 空格 制表符 来增强语句的可读性.
2. MySQL不区分大小写,但是建议关键字大写.
3.SQL的注释书写格式
SQL 有三种注释方式
单行注释分为两种注释方式 : – 注释内容 记得(–后面要接至少一个空格) 或 #注释内容
多行注释:/* 注释内容 */
4.SQL的分类
1.DDL 数据库定义语言 用来定义数据库,表,列等
create drop alter
2.DML 数据库操作语言 对数据库中的表的操作, 增,删,改
insert delete update
3.DQL 数据库查询语言 对数据库中的表的查询
select where
4.DCL 数据库控制语言 定义数据库的访问权限和安全级别以及创建用户
grant revoke
DDL
1.常说的CRUD 意思是 创建(create) 查询(retrieve) 修改 (update) 删除 (delete)
下面是操作数据库的语法:
创建 C
创建数据库,判断不存在再创建
create database if not exists 数据库名称;
创建数据库时指定字符集
create database 数据库名 character set 字符集名;
查询 R
查询所有数据库
show databases;
查询某个数据库的字符集
show create database 数据库名称;
修改 U
修改数据的字符集
alter database 数据库名称 character set 字符集名称;
删除 D
先判断数据库是否存在,再删除数据库
drop database if exists 数据库名称;
使用数据库的常见操作
查询当前使用的数据库名
select database();
使用数据库
use 数据库名;
下面是操作表的语法:
创建 C
进入数据库
use 数据库名;
创建表
create table 表名(
列名1,数据类型1,
列名2,数据类型2,
... ,数据类型n,
列名n+1,数据类型n+1
);
请注意列之间用,分隔 最后一行没有, 右括号之后不要忘记;
查询 R
查询某个数据库中所有的表
show tables;
查询表结构
desc 表名;
修改 U
修改表名
alter table 表名 rename to 新的表名;
修改表的字符集
alter table 表名 character set 字符集名;
向表中添加一列
alter table 表名 add 列名 数据类型;
修改表中的列的名称 数据类型
alter table 表名 change 列名 新列名 新的数据类型;
修改表中的列的数据类型
alter table 表名 modify 列名 新的数据类型;
删除列
alter table 表名 drop 列名;
删除 D
判断表是否存在,再删除表
drop table if exists 表名;
DML
增删改表中数据
添加数据
insert into 表名 (列名1,列名2,...,列名n) values(值1,值2,...,值n);
列名和值要一一对应
常用的是 不定义列名,默认给所有列都添加数据
insert into 表名 values (值1,值2,...,值n);
注意 除了数值类型 其他类型 使用单引号或者双引号括起来 建议使用单引号''
删除数据
delete from 表名 [where条件]
注意 如果不添加条件 默认删除表中所有数据
建议 如果删除表中所有数据 使用
truncate table 表名
效率更高 因为它是删掉表,然后创建一个和原表一模一样的表
而delete是有多少条数据就删除多少次
修改数据
update 表名 set 列名1 = 值1, 列名2 = 值2, ... [where 条件]
注意: 如果不添加条件 默认修改表中所有数据
DQL
查询表中的数据
查询表中所有数据
select * from 表名;
多个字段查询
select 字段1,字段2,...,字段n from 表名;
如果查询的字段当中有重复的数据可以使用 distinct 去除重复
ifnull(表达式1,表达式2)
用来判断 表达式1的值如果为null 那么则用表达式2的值来替换null.
起别名 as
可以省略as
条件查询
where 后跟条件
运算符
>,<,<=,>=,=, <> <>意味不等于
between ... and 在...和...之间
IN() ()可以看出集合 意思是在集合中的
like 模糊查询 _ 单个任意字符 % 多个任意字符
isnull 一个为空
and 或 &&
or 或 ||
not 或 !