MySQL基础

MySQL基础

1.基本知识

1.1安装

MySQL

1.2设置字符集

为了让mysql数据库能够支持中文,命令:

show variables like 'char%'

再输入:
set character_set_database='gbk';
set character_set_server= 'gbk'; gbk(中文)

最后输入:
status

设置权限:

use mysql;
grant all privileges on *.* to 'root'@'%' identified by 密码 with grant option;
flush privileges;
1.3查看数据库
show databases;
1.4创建数据库
create databses mytest;(数据库名)
1.5切换当前数据库
use mytest;
mysql说明
  • 用[]表示可选项
  • mysql命令不区分大小写,命名规范:命令关键字使用大写,其他使用小写,避免大小写频繁切换。一般小写
  • 命令关键字可以只写前面四个字符
DESCRIBE USER;      DESCR user;
  • 修改命令结束符

    使用DELIMITER命令,eg:

    DELIMITER //
    

    使用默认“;”,

    OPDELIMITER ;
    

2.mysql数据库和表

2.1创建数据库

使用create database或者create schema

CREATE DATABASE [IF NOT EXISTS] 数据库名
	[DEFAULT] CHARACTER SET 字符集
	| [DEFAULT] COLLATE 校对规则名
  • IF NOT EXISTS:在创建数据库之前判断是否存在,存在则不创建;可以避免出现数据库已经存在而再创建的错误。
  • CHARACTER SET:指定数据库字符采用默认字符集
  • COLLATE:指定字符集的校对规则

eg:

CREATE DATABASE student;
CREATE DATABASE IF NOT EXISTS student;
2.2修改数据库
  • ALTER DATABASE
ALTER DATABASE student
default character set gb2312
default collate gb2312_chinese_ci;
2.3删除数据库
  • DROP DATABASE
DROP DATABASE [IF EXISTS] student(数据库名);
2.4创建表
CREATE TABLE [IF EXISTS] 表名
( [列定义] ……
  | [表的索引定义]
)
[表选项] [select语句];

default:表示默认值

2.5复制表
CREATE DATABSE [IF EXISTS] 表名
	[LIKE 已有表明]
	|[as (复制表记录)];

eg:

CREATE DATABASE student LIKE test;

CREATE DATABASE student AS (select * from test);
2.6查看表的结构

describe 表名;

describe student;
2.7修改表的结构
  • ALTER TABLE
ALTER TABLE 表名
	ADD 列定义[FIRST | AFTER 列名]
	|MODIFY 列定义
	|ALTER 列名 {SET DEFAULT 值 |DROP DEFAULT}
	|CHANGE 列名 原列名
	|DROP 列名
	|RENAME [TO] 新表名
  • ADD:向列表中增添新列,FIRST|AFTER列名指定位置,默认为最后一列。
  • MODIFY:修改指定列的数据类型
  • ALTER:修改表中指定列的默认值,或者删除列的默认值
  • CHANGE:修改列的名称
  • DROP:删除列或约束
2.8修改表名
RENAME 老表名 TO 新表名
2.9删除表
DROP TABLE [IF EXISTS] 表名……
2.10插入记录
  • INSERT
INSERT [INTO] 表名
	[(列名,……)] values ({expr |default},……)
	|SET 列名={expr |default},……

eg:

INSERT INTO STUDENT VALUES ('123','SHDHSU','36323');

INSERT INTO STUDENT(学号,姓名,学分) VALUES ('123','SHDHSU','36323');

INSERT INTO STUDENT 学号='123',姓名='SHDHSU',学分='36323';
  • INSERT INTO …SELECT…
INSERT [INTO] 表名 [(列名,……)]
	SELECT 语句

eg:

INSERT INTO student1 SELECT * FROM student;
  • 插入图片

图片一般以路径的形式存储,当然也可以直接插入图片本身(LOAD_FILE函数)

INSERT INTO student VALUES('D:\IMAGE\ph');
INSERT INTO student VALUES(LOAD_FILE('D:\IMAGE\ph');
2.11替换旧记录
  • REPLACE
REPLACE INTO student values('123','ashdh','23676');
2.12修改表
  • 单个表(UPDATE)
UPDATE [LOW_PRIORITY] [IGNORE] 表名
	SET 列名1=expr1 [,SET 列名2=expr2,……]
	[WHERE 条件]
  • 不设定where语句,则更新所有列
  • where:指定删除记录条件
UPDATE student
	SET 总学分=总学分+10;
UPDATE student
	SET 学号='72812'
	WHERE 姓名='李华';
  • 多个表
UPDATE student,student1
	SET student.name='hhjjj',student.name='hhjjjj'
	where student.id=student1.id;
2.13 删除记录
DELETE FROM 表名 [WHERE条件]
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] 表名[.*] [,表名[.*]……]
	FROM TABLE_REFERENCES
	[WHERE where_definition]
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
	from 表名[.*] [,表名[.*]……]
	USING table_references
	[WHERE where_definition]
2.14清除表数据
TRUNCATE TABLE 表名
  • 语句将删除表中所有数据,无法恢复。

3.MySQL查询和视图

3.1查询
SELECT
	[ALL | DISTINCT | DISTINCTROW]
	列……
	[FROM 表……]
	[WHERE 条件]
	[GROUP BY {列名 | 表达式 position} [ASC | DESC],……]
	[HAVING 条件]
	[ORDER BY {列名 | 表达式 position} [ASC | DESC],……]
	[PROCEDURE 存储过程名(参数……)]
	[INTO OUTFILE '文件名' [CHARACTER SET 字符集]]
	export_options | INTO DUMPFILE '文件名' | INTO 变量名……]
	[FOR UPDATE | LOCK IN SHARE MODE]
3.2聚合函数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值