手撸Mysql原生语句--增删改查

mysql数据库的增删改查有如下的几种的状况,html

一、DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER SHOWpython

二、DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECTmysql

三、DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKEsql

在这里咱们开始手撸一下mysql的增删改查的代码,视图、索引等咱们以后再次的补充描述。数据库

数据库的增删改查

1.数据库的增长服务器

create database xxxide

2.删除数据库学习

drop database xxxcode

3.改数据库htm

alter database db1 charset latin1;

4.查询数据库

show databases;

而后咱们看一下表的增删改查的操做,咱们在对表进行操做的时候,咱们要先指明白要在那个数据库下建立表,因此咱们这里还须要提早再作一步操做,这个操做就是use 数据库的名字

表的增删改查

1.表的建立

create table xxx (id int primary key auto_increment,name char not null,sex enmu('female','male'));

咱们要记住建立表的语法结构就好了。

create table 表名(
字段名1 类型[(宽度) 约束条件],
字段名2 类型[(宽度) 约束条件],
字段名3 类型[(宽度) 约束条件]
);

2.删除表

drop table xxx

3.查看表

show tables

4.表的改

1. 修改表名
      ALTER TABLE 表名 
                      RENAME 新表名;

2. 增长字段
      ALTER TABLE 表名
                      ADD 字段名  数据类型 [完整性约束条件…],
                      ADD 字段名  数据类型 [完整性约束条件…];
                            
3. 删除字段
      ALTER TABLE 表名 
                      DROP 字段名;

4. 修改字段
      ALTER TABLE 表名 
                      MODIFY  字段名 数据类型 [完整性约束条件…];
      ALTER TABLE 表名 
                      CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];
      ALTER TABLE 表名 
                      CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];

5.修改字段排列顺序/在增长的时候指定字段位置
    ALTER TABLE 表名
                     ADD 字段名  数据类型 [完整性约束条件…]  FIRST;
    ALTER TABLE 表名
                     ADD 字段名  数据类型 [完整性约束条件…]  AFTER 字段名;
    ALTER TABLE 表名
                     CHANGE 字段名  旧字段名 新字段名 新数据类型 [完整性约束条件…]  FIRST;
    ALTER TABLE 表名
                     MODIFY 字段名  数据类型 [完整性约束条件…]  AFTER 字段名;

具体的操做的实例咱们参考博客园的地址为:https://www.cnblogs.com/Eva-J/articles/9677452.html#_label7

5.查看表的结构

desc 表名; desc staff_info;

show create table 表名 \G

show create table staff_info\G;

数据库表之间的关系的操做

数据库表之间的关系,咱们要明白有三种的关系,而后咱们要将这三种关系弄明白,手撸一边代码。

一对多的关系:

create table press(
id int primary key auto_increment,
name varchar(20)
);

create table book(
id int primary key auto_increment,
name varchar(20),
press_id int not null,
foreign key(press_id) references press(id)
on delete cascade
on update cascade
);

一对一的关系

create table customer(
    -> id int primary key auto_increment,
    -> name varchar(20) not null,
    -> qq varchar(10) not null,
    -> phone char(16) not null
    -> );

create table student(
    -> id int primary key auto_increment,
    -> class_name varchar(20) not null,
    -> customer_id int unique, #该字段必定要是惟一的
    -> foreign key(customer_id) references customer(id) #外键的字段必定要保证unique
    -> on delete cascade
    -> on update cascade
    -> );

多对多

create table book(
id int primary key auto_increment,
name varchar(20),
press_id int not null,
foreign key(press_id) references press(id)
on delete cascade
on update cascade
);

create table author(
id int primary key auto_increment,
name varchar(20)
);

#这张表就存放做者表与书表的关系,即查询两者的关系查这表就能够了
create table author2book(
id int not null unique auto_increment,
author_id int not null,
book_id int not null,
constraint fk_author foreign key(author_id) references author(id)
on delete cascade
on update cascade,
constraint fk_book foreign key(book_id) references book(id)
on delete cascade
on update cascade,
primary key(author_id,book_id)
);

咱们这里再补充一些sql语句

登陆到数据库服务器中:mysql -u 用户名 -h ip地址 -p 密码

select user(); 查看当前的登陆的用户。

select database();查询当前使用的数据库。

set password = password('zhouqian');

create user 'zhouqian' @ '192.168.14.12' identified by '123';

grant 权限类型 on 数据库(数据库的名字).*(数据库(数据库的名字).表名) to 用户('zhouqian' @ '192.168.14.%')

而后在最后咱们这里要强调一点的就是,咱们要对数据库的数据类型和完整性约束有一个熟悉的了解,在这里我只是列举出来,可是具体的学习你们自行去学习。

数据类型:int,float,date,datetime,char,varchar,enmu,set

约束条件:default,auto_increment,primary key,foreign key,not null,null,unique,

同时我在这里给你们推荐两篇的博客:

mysql支持的数据类型

mysql表的完整性约束