mysql基础

一、mysql简介

MVSOL就是一种关系型数据库管理系统,采用关系模型来组织数据,借助于集合、代数等数学概念和方法来处理数据,通过二维表来表示数据之前的联系,不同的表通过关联字段来建立联系。

二、SQL

DDL 数据定义语言 :CREATE、DROP、 ALTER、TRUNCATE

DML 数据操作语言:INSERT、UPDATE、DELETE、CALL

DQL 数据查询语言:SELECT

DCL 数据控制语言:GRANT、REVOKE

三、基本命令 

  • 数据库相关
#进入mysql
mysql -u root -p

#查看当前存在的数据库
show databases;

#显示所有表
show tables;

#创建一个game的数据库
create database game;

#删除一个game的数据库
drop database game;

#使用game数据库
use game;

#创建一个users表
create table users(id int,name varchar(30));

#查看users表结构
desc users;

#修改uer表类型
alter table users modify column name varchar(50);

#修改users表name字段名为nick_name
alter table users rename column name to nick_name;

#在users表新增phone字段
alter table users add column phone char(11);

#删除users表phone字段
alter table users drop column phone;

#删除users表
drop table users;

#退出
exit;
  • 修改密码及允许远程登录
# 【5.7.9以下版本】修改root⽤户密码为123456:
UPDATE user SET password=PASSWORD("123456") WHERE user=root;

# 刷新权限
FLUSH PRIVILEGES;

#【5.7.9以上版本】修改root⽤户密码为123456:
ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

# 刷新权限
FLUSH PRIVILEGES;

#修改root⽤户允许远程登录 配置⽂件my.cnf中的 bind-address 也需要改成 0.0.0.0
UPDATE user SET host='%' WHERE user='root' AND host='localhost';

# 刷新权限
FLUSH PRIVILEGES;

  • 增删改查
# 增(Create)
INSERT INTO students (name, age) VALUES ('Alice', 20);
# 删(Delete)
DELETE FROM students WHERE id = 1;
# 改(Update)
UPDATE students SET age = 21 WHERE id = 1;
# 查(Select)
SELECT * FROM students WHERE age > 18;
  • where条件 
#使用比较运算符
SELECT * FROM table_name WHERE column_name = value;

#使用通配符
SELECT * FROM table_name WHERE column_name LIKE '%pattern%';

#使用IN子句
SELECT * FROM table_name WHERE column_name IN (value1, value2, value3);
SELECT * FROM table_name WHERE column_name NOT IN (value1, value2, value3);

#使用NULL值
SELECT * FROM table_name WHERE column_name IS NULL;
SELECT * FROM table_name WHERE column_name IS NOT NULL;

#使用BETWEEN AND 查询包含了25岁和33岁
SELECT * FROM user WHERE age BETWEEN 25 AND 33;
  • 多表联合查询 
#LEFT JOIN(左联接)
SELECT
	users.user_id,
	users.user_name,
	orders.order_id,
	orders.order_date 
FROM
	users
	LEFT JOIN orders ON users.user_id = orders.user_id;
  • 子查询 (在SELECT中,除了GROUP BY 和 LIMIT之外,其他位置都可以声明子查询)
#在 WHERE 子句中使用子查询
SELECT
	column_name 
FROM
	table1 
WHERE
	column_name = ( SELECT column_name2 FROM table2 WHERE CONDITION );

#在 FROM 子句中使用子查询(临时表)
SELECT
	column_name ( s ) 
FROM
	( SELECT column_name ( s ) FROM table1 ) AS alias_name 
WHERE
	CONDITION;

#在 SELECT 列表中使用子查询
SELECT
	( SELECT column_name FROM table2 WHERE table2.column_name = table1.column_name ) AS column_name_alias 
FROM
	table1;

#使用 EXISTS 与子查询
SELECT
	column_name ( s ) 
FROM
	table1 
WHERE
	EXISTS ( SELECT column_name FROM table2 WHERE table2.column_name = table1.column_name );

#使用 ALL 与子查询
SELECT
	column_name ( s ) 
FROM
	table1 
WHERE
	column_name > ALL ( SELECT column_name FROM table2 );

#请注意,子查询的性能可能会受到影响,特别是在处理大型数据集时。在某些情况下,可以通过使用 JOIN 来代替子查询,这样可以提高查询的效率。
  • 查看mysql的字符集
#查看mysql字符集
show variables like '%character%';

#或者
show variables like '%char%';
  • 修改mysql字符集 
vim /etc/my.cnf

#在MySQL5.7或之前的版本中,在文件最后加上中文字符集配置:
character_set_server=utf8

#重新启动MySQL服务
systemctl restart mysqld

#修改已创建数据库的字符集
alter database dbtest1 character set 'utf8';

#修改已创建数据表的字符集
alter table t_emp convert to character set 'utf8';
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值