1.MySQL是什么?
mysql是一种开源式关系型数据管理系统(RDBMS),使用最常用的数据库管理语言SQL进行数据管理
2.SQL的分类
1、DDL(Data Definition Language) 数据定义语言,用来操作数据库、表、列等; 常用语句:CREATE、 ALTER、DROP 2、DML(Data Manipulation Language) 数据操作语言,用来操作数据库中表里的数据;常用语句:INSERT、 UPDATE、 DELETE 3、DCL(Data Control Language) 数据控制语言,用来操作访问权限和安全级别; 常用语句:GRANT、DENY 4、DQL(Data Query Language) 数据查询语言,用来查询数据 常用语句:SELECT
数据库的三大范式
1.第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据线;也就是说:每列的值具有原子性,不可再分割。
2.第二范式(2NF)是在第一范式(1NF)的基础上建立起来得,满足第二范式(2NF)必须先满足第一范式(1NF)。如果表是单主键,那么主键以外的列必须完全依赖于主键;如果表是复合主键,那么主键以外的列必须完全依赖于主键,不能仅依赖主键的一部分。
3、第三范式(3NF)是在第二范式的基础上建立起来的,即满足第三范式必须要先满足第二范式。第三范式(3NF)要求:表中的非主键列必须和主键直接相关而不能间接相关;也就是说:非主键列之间不能相关依赖。
DCL(数据控制语言)
1.创建用户
需要使用root用户登录之后进行操作 创建用户的命令为:create user 用户名@xxx identified by 密码; 其中xxx表示创建的用户使用的IP地址,可以设置为localhost(代表本机)或者’%’(代表允许所有IP地址登录)
CREATE USER xiaoming@'%' IDENTIFIED BY 'root';
2.给用户授权
创建用户之后,可以使用新用户进行登录,查看数据库只有系统自带的数据库,想要操作自己创建的数据库还需要root用户对新用户进行授权 给用户授权的命令为:grant 权限1,权限2,…,权限n on 数据库名.* to 用户名@IP; 上面命令的含义是将数据库的n个权限授予用户 如果是将操作数据库的所有的权限授予用户,命令为:grant all on 数据库名.* to 用户名@IP; 授权之后,新用户就可以操作相应的数据库了
3.撤销授权
当需要限制新用户操作数据库的权限时,root用户可以撤销已授予用户的某些权限 撤销权限的命令为:revoke 权限1,权限2,…,权限n on 数据库名.* from 用户名@IP;
4.查看用户的权限
root用户查看用户权限的命令为:show grants for 用户名@IP;
5.删除用户
root用户删除用户的命令为:drop user 用户名@IP
DDL(数据定义语言)
创建数据库常用语句
查询所有数据库
show databses;
创建数据库
create database dbname;
使用数据库
use dbname;
查询所有数据表
show tables;
删除数据库
drop database dbname;
创建表
CREATE TABLE `users`(
`username` VARCHAR(8),
`age` INT
);
查看表
DESC `users`
删除表
DROP TABLE emp;
修改表
将users表中的username 格式改为varchar(20)
ALTER TABLE `users` MODIFY username VARCHAR(20);
给users表增加字段 userId
ALTER TABLE `users` ADD COLUMN userId INT(3);
给users表删除字段
alter table `users` drop column userId;
修改字段列名字
alter table users change username uname varchar(20);
修改表编码设置utf-8
alter table user convert to character set utf8;
DML(数据操作语言)
关键字:插入insert,删除delete,更新update等
插入字段(不指定字段)
INSERT INTO `users` VALUES('小李',11,4)
更改表
UPDATE users SET age=14 WHERE userID=4;
多表更新
UPDATE users a, users2 b
SET a.`age`=b.`greadId`*b.`usersId`
WHERE a.`userId`=b.`usersId`
查询表
普通查询
SELECT * FROM users
带条件查询
SELECT * FROM users WHERE userId=4
查询指定字段
SELECT username FROM users
查询特定字段并去除重复
SELECT DISTINCT * FROM users;
查询并排序 降序
SELECT DISTINCT * FROM users ORDER BY age ;
升序
SELECT DISTINCT * FROM users ORDER BY age DESC;
|