MySQL知识点

来源:互联网 发布:java字符串处理题目 编辑:程序博客网 时间:2024/05/19 03:22

轻松学好MySQL

1.登陆mysql
命令:mysql –u root -p
2.设置登录密码
命令:Set password for ‘root’@’localhost’=password(‘abc’);
3.显示当前mysql会话使用的字符集
命令:Show variables like ‘character%’
4.设置数据库字符集
命令:set character_set_database=gbk;
set names gbk;(可一次性设置client、connection、results的字符集为gbk)
5.设置client、connection、results的字符集命令:set names gbk
6.执行脚本文件
命令:source d:/mysql/init.sql;(/)


  • DB 数据库
  • DBMS 数据库管理系统
  • DBA 数据库管理员
  • DBS 数据库系统
  • 数据处理(将数据转换成信息的过程)
  • 数据库系统的核心 –DBMS

1.查看数据库
show databases;
2.创建数据库
create database 数据库名;
数据库文件 db.opt
3.显示数据库结构
show create database 数据库名;
4.选择当前操作的数据库
use 数据库名;
5.删除数据库
drop database 数据库名;

  • 修改数据库字符集和字符序的方法
    1) 直接编辑对应的opt文件修改;
    2) alter database 数据库名 character set 字符集;
    -创建数据库时可以指定字符集和字符序
    命令:create database 数据库名 default;
    CHARACTER SET 字符集名;[collation 字符序名]
    数据库系统的三个阶段:
    层次
    网状
    关系
    数据库的模型:
    1)概念模型(基于用户,用于数据库设计)
    2)组织层数据模型(基于计算机,用于数据库管理系统的实现)

E-R图(实体联系图)
实体–矩形
属性–圆形
联系–菱形
DBMS不支持概念模型
数据模型要素:
数据结构
数据操作
完整性约束

ps:联系也可以有属性
一个属性涉及到多个实体时,不能单独的作为实体的属性,只能作为实体间联系的属性。
关系模型:逻辑结构是一个二维表(关系是一个集合)
域:属性的取值范围
分量:元组中的一个属性值
行=元组=记录
列=属性=字段
1.在关系模型中,实体与实体间的联系都由关系表示
2.关系的每一个分量必须是一个不可分的数据项,即不允许表中还有表。


日志文件的作用:用来数据库恢复
备份:整个文件表;共享表空间文件;两个日志文件。
9.创建数据库时指定默认字符集
命令:create database aaa default character set gbk;
10.修改已有数据库的字符集
命令:Alter database aaa character set utf8;
11.查看数据库的结构
命令:Show create database aaa;
12.选择当前操作的数据库
命令:Use aaa;
13.删除数据库
命令:Drop database aaa;
14.设置默认的存储引擎
命令:set default_storage_engine=myisam
myisam建表会存在的文件
(frm –表结构;MYD–数据;MYI–index索引)
15. 查看当前的日期时间和当前时间
命令:select now() ,curtime()
16.创建表
命令:create table 表名(列名 数据类型 约束) engine=myisam default charset=gbk;
17 .设置表空间的类型
命令:set@@global.innodb_file_per_table=off(共享表空间)数据保存在ibdata1生成1个frm表结构文件
set@@global.innodb_file_per_table=on(独享表空间)生成两个文件分别是frm–表结构文件、ibd–索引、数据;
18.显示当前数据库中的所有表
命令:show tables;
19.显示表结构
命令:desc 表名
查看表结构:
命令:show create table 表名;
20 .修改已有表的存储引擎
命令:alter table 表名 engine=myisam;
21.修改已有表的默认字符集
命令:alter table 表名 default charset gbk;
22.删除表
命令:drop table 表名;
drop table if exists表名;
23.实体完整性约束
实体完整性是对主码的约束,范围:唯一且非空;
主码约束可以定义为列级或表级约束,当表的主码有多个属性构成时,主码约束必须为表级约束
命令:primary key、 unique 、auto_increment
24.参照完整性约束
参照完整性是对外码的约束,外码可为空,也可为父表中某个元组的主码值。
含外码的表为子表。
命令:Foreign key……references
25.域完整性约束
空值 命令:null、not null
默认值 命令:default
列值 命令:check(mysql不支持)
26.复制表结构
命令1:create table 表名 like 源表
命令2:
create table 新表名 select * from 源表 或
create table 新表名 select * from 源表 where 1=2
27.查看表的定义:
命令:Show create table 表名
28.修改表结构中的字段相关信息
①删除字段的命令:
alter table 表名 drop 字段名
②添加字段的命令:
alter table 表名 add 新字段名 数据类型 [约束条件 ] [ first | after 旧字段名]
③修改字段名的命令:
alter table 表名 change 旧字段名 新字段名 新数据类型
④修改字段的数据类型的命令:
alter table 表名 modify 字段名 新数据类型
29.修改表结构中的约束条件
添加约束条件的命令:
Alter table 表名 add [constraint 约束名] 约束类型(字段名)
删除约束条件的命令:
alter table 表名 drop primary key
alter table 表名 drop foreign key 约束名
alter table 表名 drop index 唯一索引名
30.修改表名
命令1:rename table旧表名 to 新表名
命令2:alter table 旧表名 rename 新表名
31.插入数据
Insert into 表名[列名表]
Values()
1.向char,varchar,text以及日期型的字段插入数据时,字段值用单引号;
2.向自增型auto_increment字段插入数据时,建议插入NULL
3.向默认值约束字段插入数据时,字段值可以使用关键字default
注:insert与replace的区别
replace:先检查(有则删除),后插入,是delete和insert两个操作
32.修改数据
Update 表名
Set 列名=要修改的值
[Where 修改条件]
33.删除数据
Delete from 表名
[Where 修改条件]
注:truncate table表名
使用delete删除表记录
使用truncate清空表记录
truncate table语句不支持事务的回滚,并且不会触发触发器程序的运行