目录
正确安装MYSQL的步骤如下
=========================================版本8.0====================================================================
1.解压MySQL
2.修改my.ini文件
3.mysqld install
4.mysqld --initialize --console
5.net start mysql
6.mysql -P 3306 -u root -p
7.ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
8.Navicat链接测试如果MySQL已经安装过,那么执行mysqld remove
=================================版本5.7=============================================================================
1.解压MySQL
2.修改my.ini文件
3.mysqld install
4.mysqld --initialize --console
5.net start mysql
6.mysql -P 3306 -u root -p
7.SET PASSWORD = PASSWORD("123456");
8.Navicat链接测试如果MySQL已经安装过,那么执行mysqld remove
一、权限管理
如可大致分为三个职务的所属权限
项目经理:数据库而言,增改删查;create ; drop
项目组长:数据库而言,增改删查
开发人员:数据库而言,查询
mysql默认数据库里面的四张表(user(用户层权限),db(数据库层权限),tables_priv(表层权限),columns_priv(字段层权限))。
先创建一个新用户并且设置密码
mysql8.0版本创建用户
create user zs;----创建用户名
ALTER USER 'zs'@'%' IDENTIFIED WITH mysql_native_password BY '123456';---设置密码select host,user,authentication_string from user; ----查询
MySQL5.7版本创建用户
命令:create user 用户名 identified by '密码';
注:identified by会将纯文本密码加密作为散列值存储
如: create user ls identified by '123456';
设置删除修改权限 (Grant)
---赋予 zs的权限 可修改删除查看
1. grant all PRIVILEGES on db_1314.* to zs@'%' ----查看整个数据库的权限2. grant select, delete on db_1314.t_mvc_book to zs@'%' ---赋予张三删除查看权限
撤销权限(Revoke)
--查看所有权限
show grants for 'zs'@'%';
---收回删除权限 只针对数据库进行收回,针对表不可
revoke delete on db_1314.* from zs@'%';
二、数据库创建及数据类型
----创建数据库
create database T280_2022
select version();----展示msql版本show databases ---展示所有数据库
drop database ----删除数据库(慎用)
------面试题1
------ 四大引擎:SHOW ENGINES
MEMORY存储引擎
InnoDB 存储引擎
myisam 存储引擎
而我们常用两大引擎
----- InnoDB 存储引擎-支持事务; myisam 支持全文索引
数据类型
MySQL中定义数据字段的类型对你数据库的优化是非常重要的。
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
1)字符类型:char varchar text blob
2)数值类型:int bigint float decimal
int -> int
bigint -> long
float -> 成绩
decimal -> 货币类型(精度,小数)
3)日期类型:date time datetime timestamp
date -> yyyy:MM:dd HH:mm:ss
time -> HH:mm:ss
datetime -> yyyy:MM:dd
timestamp(时间戳) -> 长整数
三、创建表
语法:
create table 表名(
列名 列的类型【(长度) 约束】,
列名 列的类型【(长度) 约束】,
列名 列的类型【(长度) 约束】,
...
列名 列的类型【(长度) 约束】
)
举个栗子
----创建新表 mysql检查约束不生效
create table user02(
id int PRIMARY key,
name VARCHAR(18) not null,
sex char DEFAULT '男',
birthday datetime ,
code VARCHAR (18) UNIQUE
)
desc user02;--查看字段
select * from user02; ---查看表数据
---扩展字段 :为了防止后期对表进行添加字段所造成的麻烦,采用以下方法避免不必要的麻烦
create table user03(
id int PRIMARY key,
name VARCHAR(18) not null,
sex char DEFAULT '男',
birthday datetime ,
code VARCHAR (18) UNIQUE,
extra1 VARCHAR(23),)
id int PRIMARY key,
name VARCHAR(18) not null,
sex char DEFAULT '男',
birthday datetime ,
code VARCHAR (18) UNIQUE ,
extra1 VARCHAR(20),
extra2 VARCHAR(30),
extra3 VARCHAR(40),
extra4 VARCHAR(10),
extra5 VARCHAR(20),
extra6 VARCHAR(30))
---对表的修改操作如下---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
表的修改
/*
语法
alter table 表名 add|drop|modify|change column 列名 【列类型 约束】;
*/
#①修改列名
ALTER TABLE book CHANGE COLUMN publishdate pubDate DATETIME;
#②修改列的类型或约束
ALTER TABLE book MODIFY COLUMN pubdate TIMESTAMP;
#③添加新列
ALTER TABLE author ADD COLUMN annual DOUBLE;
#④删除列
ALTER TABLE book_author DROP COLUMN annual;
#⑤修改表名
ALTER TABLE author RENAME TO book_author;
DESC book;
复制表字段或者表内容--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
表的复制
INSERT INTO author VALUES
(1,'村上春树','日本'),
(2,'莫言','中国'),
(3,'冯唐','中国'),
(4,'金庸','中国');
SELECT * FROM Author;
SELECT * FROM copy2;
#1.仅仅复制表的结构
CREATE TABLE copy LIKE author;
#2.复制表的结构+数据
CREATE TABLE copy2
SELECT * FROM author;
#只复制部分数据
CREATE TABLE copy3
SELECT id,au_name
FROM author
WHERE nation='中国';
#仅仅复制某些字段
CREATE TABLE copy4
SELECT id,au_name
FROM author
WHERE 0;
四、面试题
今天给大家拿个面试题举个栗子--->
【面试1】
解答如下
【面试2】
=========================================================================