MySQL学习笔记(1)-操作入门

数据库系统

DataBaseSystem = 数据库管理系统(DBMS,DataBase MavagementSystem)+数据库(DataBase)+管理员

DBS =DBMS+DB

定义:对大量信息进行管理的高效解决方案,按照数据结构来组织、存储和管理数据的库。

关系型数据库系统

建立在关系模型上的数据库系统。

关系模型:

当将日常生活中的实体(学生),和实体的属性(学生的学号,姓名)保存到数据中时,应该如何处理该实体结构。

1.数据结构可以规定,同类数据,结构一致。就是一个二维的表格。

2.数据之间的关系可以设置

Nosql(Not only sql)非关系型数据库系统

关系型数据库的典型概念:

数据库DataBase:数据的仓库。

表table:数据是保存在表内,保存在一个表内的数据,应该具有相同的数据格式。

行&列:行用于记录数据,列用于规定数据格式。

记录:行内的数据。

字段:数据的某个列。

SQL:数据库管理系统,用来管理数据的语言,结构化查询语言(SQL,Structured Query Language)


MySQL

MySQL采用的是C/S(客户端/服务器端)架构。

服务器端(server):存储和管理数据库的。

客户端(client):发出操作请求的程序。



连接与端口服务器

mysql -h地址 -P端口 -u用户名 -p密码
1.mysql -hlocalhost -P3306 -uroot -p
2.mysql -uroot -p


发出请求命令

show databases; 列出当前的数据库

SQL(Structure Query Language)结构化查询语言

分类:针对操作对象不同,分成不同的语言:

1.数据操作(管理)语言。    DML

    查询,获得数据  DQL

    管理,增加,删除,修改数据 DML

2.数据定义语言(对保存数据的格式进行定义)DDL

3.数据库控制语言(针对数据库软件服务进行操作)DCL



库操作

创建数据库


create database 数据库名;
Tip:
语句要求使用语句结束符;来结束
标识符(数据库名)命名规则:
大小写取决于当前操作系统,见面知意,
推荐使用下划线。标识符的字符:使用任意字符,数字,符号,甚至中文。但是一些特殊的组合,包括mysql的内部关键字应该使用标识符限定符``来包裹。
create database java;
create database `1234`;
create database `create`;
set names gbk;
create database `测试`;

数据查询


查看当前存在的数据库:

show databases;

 查看数据的创建语句:

show create database db_name;


数据库删除:

drop database db_name;


修改数据库信息:

alter database db_name [修改指令];

修改名字:

简单的可以直接修改目录名,将数据库内容全部导出,新建一个数据库,将内容导入,删除旧数据库。

创建一个新数据库,将旧数据库内的表,都移动(重命名)到新数据库内,删除就数据库。

表操作

数据库是表的容器,表,必须属于某个数据库。进行表操作时,都会指定当前的默认数据库:

use db_name;只是设定了默认数据库,不会影响操作其他数据库

创建表:

create table tbl_name(列结构)[表选项]

列定义:

列名 列的数据类型【列的属性(约束)】,

先分析,需要保存的实体数据,用于哪些属性。这些属性应该如何保存。

例如,班级信息

班级,班号,班级开班日期

可以通过.语法,指明数据表所属的数据库
库.表 database.table, 如果任何标识符,出现特殊字符,需要使用反引号``包裹。

use db_name;

查看:

有哪些表

show tables;

表名前缀

为了区分相同逻辑表名的不同应用,给逻辑表名,增加前缀,形成真实表名。

/*学生管理*/
create table info_student(
name varchar(20),
stu_num varchar(20)
);
/*在线考试*/
create table exam_student(
name varchar(20),
stu_num varchar(20),
score int
);
/*考试问题*/
create table exam_question(
content varchar(100),
answer varchar(20)
);
show tables [like 'pattern'];
其中like pattern部分,表示只获得那种规则的表名。
show tables like 'exam_%';
show tables like '%_student';
like适用于
show databases like 'pattern'];
show databases like 'java%';
show databases like '%';
其中%称之为通配符,表示任意字符的任意个数的组合。

某个表的创建信息:

show create table tbl_name;

当表比较乱时,可以使用\G作为语句结束符。

show create table tbl_name\G

查看表结构(描述表结构)

数据库对应的目录,显然,数据库内容对应的就应该是目录的内容,文件。

describe tbl_name;
其简写形式为:
desc tbl_name;

删除表:

drop table tbl_name;
drop table[if exists] tbl_name;
表不存在,不能删除,会报告错误。
同样适用于database:
drop database if exists db_name;

修改表:

修改表名

rename table old_tbl_name to new_tbl_name;
支持同时修改多个表名
rename table old1 to new1,old2 to new2;

支持,跨数据库重命名。

可以利用跨数据库重命名表,可以为数据库重命名。创建一个新的数据库,旧数据库内的表,都rename到新的

数据库内,删除旧的数据库。




修改列定义

增加一个新列
add
修改一个列的定义
modify
重命名一个列
change
删除一个列
drop
修改表结构,上面的是子命令,上级是alter,
alter table tbl_name [add|modify|change|dorp];
alter table exam_student add height int;

alter table exam_student drop height;

alter table exam_student modify stu_num varchar(40);
alter table exam_student change score fenshu int;

修改表选项:

alter table tbl_name 新的表选项;

数据操作

创建数据(插入数据)   获得数据(查询数据)   删除数据     修改数据

创建数据:

insert into 表名(字段列表) values(值列表);

如果需要在插入时,为所有的字段设置值,那么可以省略字段列表。要求是值的顺序,应该与表中的字段的顺序一致。

insert into exam_student valude('pp','110',98);

获得数据:

select 字段列表 from 表名 查询条件;    字段列表,可以使用*代替,表示所有的字段,查询条件可以省略,表示所有的记录都获得。相当于where 1
select name ,stu_num from exam_student;

  

带条件的
select * from exam_student where fenshu>=72;

删除数据

delete from 表格 条件; 

删除需要在逻辑上严格给条件,否则容易造成数据误操作,导致损失。语法上可以没有where,

如果需要删除所有数据,使用where 1;

delete from exam_student where fenshu >72;

修改数据

update 表名 set 字段=新值,条件。
update exam_student set fenshu=100;
update exam_student set fenshu=88 where fenshu=100;

猜你喜欢

转载自blog.csdn.net/qq_38826019/article/details/80545259