mysql  数据库接口程序以及SQL语句操作

用于管理数据库:
  命令接口自带命令
  DDL:数据定义语言(create drop )
  DCL: 数据控制语言(grant revoke)
  DML: 数据操作语言(update delete insert)

一 . mysql接口程序:

  ① mysql -uroot -poldboy123 -e "show variables like '%server_id%'"
  ② mysql>

1. 接口自带的功能

  ① \h 或help 或 ?

help  contents;

  ② \G

mysql>  select user,host,password from mysql.user\G;

  ③\T  或 tee  记录操作日志

  ④ \c   等于linux ctrl +c

  ⑤ \s 或 status

  ⑥ \. 或 source    执行外部SQL脚本:二进制日志截取、备份出来的SQL脚本

2.查看mysql 命令帮助

mysql> help contents;
You asked for help about help category: "Contents"
For more information, type 'help <item>', where <item> is one of the following
categories:
Account Management
Administration
Compound Statements
Data Definition
Data Manipulation
Data Types
Functions
Functions and Modifiers for Use with GROUP BY
Geographic Features
Help Metadata
Language Structure
Plugins
Procedures
Storage Engines
Table Maintenance
Transactions
User-Defined Functions
Utility
mysql> help data Definition;
You asked for help about help category: "Data Definition"
For more information, type 'help <item>', where <item> is one of the following
topics:
ALTER DATABASE
ALTER EVENT
ALTER FUNCTION
ALTER LOGFILE GROUP
ALTER PROCEDURE
ALTER SERVER
ALTER TABLE
ALTER TABLESPACE
ALTER VIEW
CONSTRAINT
CREATE DATABASE
CREATE EVENT
CREATE FUNCTION
CREATE INDEX
CREATE LOGFILE GROUP
CREATE PROCEDURE
CREATE SERVER
CREATE TABLE
CREATE TABLESPACE
CREATE TRIGGER
CREATE VIEW
DROP DATABASE
DROP EVENT
DROP FUNCTION
DROP INDEX
DROP PROCEDURE
DROP SERVER
DROP TABLE
DROP TABLESPACE
DROP TRIGGER
DROP VIEW
RENAME TABLE
TRUNCATE TABLE

二 服务端命令

1 SQL:结构化的查询语言,mysql接口程序只负责接收SQL,传送给SQL层

2 SQL种类

      DDL:数据库(对象)定义语言 (create drop  alter )
      DCL:数据库控制语言(grant revoke)
      DML:数据(行)操作语言(update delete insert)
      DQL: 数据查询语言(show、select)

三 DDL语句:数据定义语言 (create drop )

DDL 操作对象分为        库   表

1 库 的定义

  定义了: ① 库名   ②库的基本属性

2. 定义库 定义字符集

show databases;
create database test CHARACTER SET utf8 ;
create database kitty_server DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; show create database llf;
drop database llf;
help create database;

字符集: CHARACTER SET [=] charset_name
排序规则: COLLATE [=] collation_name

mysql> show variables like 'character_set%';
+--------------------------+------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /data/mysql-5.6.42/share/charsets/ |
+--------------------------+------------------------------------+

字符集:

  ① 服务器字符集

    控制的是,存到mysql中时,字符集控制

  ② 客户端字符集

    控制的是用户的输入及显示

  ③ 系统字符集

    控制的是系统相关的显示,和一些依赖于操作系统的应用

  

3  修改库的字符集

ALTER DATABASE [db_name] CHARACTER SET  charset_name COLLATE collation_name
alter database llf charset utf8mb4 COLLATE utf8mb4_general_ci;
show create database llf;

4 创建表 (create)

create table t1 (id int ,name varchar(20));

表数据:数据行
表属性(元数据):表名、列名字、列定义(数据类型、约束、特殊列属性)、表的索引信息

4-1 复制表

-- 复制表结构+记录
create table t2_new select * from t2; -- 复制表结构
create table t3_new select * from t3 where 1 =2;
create table t3_new like t3;

5 删除表以及表结构 (drop)

drop table t1;

6  修改表 (alter)

-- 修改表名
alter table table_1 rename t2_new;
rename table t1 to t1_new; -- 删除字段i
ALTER TABLE table_1 DROP i; -- 添加字段 i
ALTER TABLE table_1 ADD i INT; -- 添加字段 i 设定位第一列
ALTER TABLE table_1 ADD i INT FIRST; -- 添加字段 设定位于c个字段之后
ALTER TABLE table_1 ADD i INT after c; -- 修改字段类型
ALTER TABLE table_1 MODIFY c CHAR(10); -- change 修改字段名
ALTER TABLE table_1 CHANGE c c_new CHAR(10); -- change也可以 修改字段类型
ALTER TABLE table_1 CHANGE c b varchar(10); -- 删除列
alter table table_1 drop c; -- 修改默认值为100
ALTER TABLE table_1 ALTER i SET DEFAULT 1000; -- 删除默认值
ALTER TABLE table_1 ALTER i DROP DEFAULT; -- 修改 id为主键
ALTER TABLE table_1 modify id int(11) not null primary key auto_increment; -- 增加约束 (针对已有的主键增加 auto_increment)
alter table table_1 modify id int(11) not null primary key auto_increment; -- 修改 id 自动增长
alter table table_1 modify id int(11) not null auto_increment; -- 对存在的表增加复合主键
alter table table_1 add primary key(host_ip, port); -- 增加主键
alter table table_1 modify name varchar(10) not null primary key; -- 增加主键和自动增长
alter table table_1 modify id int not null primary key auto_increment; -- 删除自增约束
alter table table_1 modify id int(11) not null; -- 删除主键
alter table table_1 drop primary key;

四 DML语句: 数据操作语言 (insert update delete)

1. insert

insert into t1 values (2,'li4'),(3,'wang5'),(4,'ma6');
insert into t1(name) values ('xyz');

2. update

----会更新表中所有行的name字段,比较危险。
update t1 set name='zhang33' ;
update t1 set name='zhang55' where id=1;

3. delete

--删除表中所有行,比较危险。一行一行删除表中数据。
delete from t1 ;
delete from t1 where id=2;

DDL  删除表  truncate

truncate table t1;  ---在物理上删除表数据,速度比较快。

 

  

五  DQL语句:数据查询语言(show、select)

1. show

show tables;
show create table t1;
show create database llf;

2. 单表查询

https://www.cnblogs.com/augustyang/p/11079174.html

3 多表查询

https://www.cnblogs.com/augustyang/p/11456792.html

六 DCL语句: 数据控制语言(grant revoke)

1.grant

grant   all     on  ysl.*     to   test@'10.0.0.%'    identified by  '123456';
-- 权限 权限范围 用户 范文 密码
grant SELECT,INSERT, UPDATE, DELETE, CREATE, DROP  on  testdb.* to zabbix@'10.0.0.%';
-- 创建用户并授权
grant all on *.* to root@'10.0.0.%' identified by '123456';

2 revoke

mysql> revoke create,drop on *.* from  ysl@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> revoke all on *.* from ysl@'%';
Query OK, 0 rows affected (0.00 sec)

七 数据类型

https://www.cnblogs.com/augustyang/p/11079102.html

八 完整性约束

https://www.cnblogs.com/augustyang/p/11079165.html

第三章 mysql 数据库接口程序以及SQL语句操作的更多相关文章

  1. 第三章 MySQL高级查询(一)

    第三章 MySQL高级查询(一) 一.SQL语言的四个分类 1.       DML(Data Manipulation Language)(数据操作语言):用来插入,修改和删除表中的数据,如INSE ...

  2. linux内核代码注释 赵炯 第三章引导启动程序

    linux内核代码注释 第三章引导启动程序 boot目录中的三个汇编代码文件   bootsect.s和setup.s采用近似intel的汇编语法,需要8086汇编器连接器as86和ld86 head ...

  3. 如何用VS EF连接 Mysql,以及执行SQL语句 和存储过程?

    VS2013, MySQL5.7.18 , MySQL5.7.14 执行SQL语句: ztp_user z = new ztp_user(); object[] obj = new object[] ...

  4. MySQL数据库(一)—— 数据库介绍、MySQL安装、基础SQL语句

    数据库介绍.MySQL安装.基础SQL语句 一.数据库介绍 1.什么是数据库 数据库即存储数据的仓库 2.为什么要用数据库 (1)用文件存储是和硬盘打交道,是IO操作,所以有效率问题 (2)管理不方便 ...

  5. 【转】MySQL用户管理及SQL语句详解

    [转]MySQL用户管理及SQL语句详解 1.1 MySQL用户管理 1.1.1 用户的定义 用户名+主机域 mysql> select user,host,password from mysq ...

  6. Django中使用mysql数据库并使用原生sql语句操作

    Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库. 准备的软件mysql数据库,版本5.7 ...

  7. 浅谈mysql配置优化和sql语句优化【转】

    做优化,我在这里引用淘宝系统分析师蒋江伟的一句话:只有勇于承担,才能让人有勇气,有承担自己的错误的勇气.有承担错误的勇气,就有去做事得勇气.无论做什么事,只要是对的,就要去做,勇敢去做.出了错误,承担 ...

  8. 如何记录MySQL执行过的SQL语句

    很多时候,我们需要知道 MySQL 执行过哪些 SQL 语句,比如 MySQL 被注入后,需要知道造成什么伤害等等.只要有 SQL 语句的记录,就能知道情况并作出对策.服务器是可以开启 MySQL 的 ...

  9. mysql里面如何用sql语句让字符串转换为数字

    sql语句将字符串转换为数字默认去掉单引号中的空格,遇到空格作为字符串截止, SELECT '123 and 1=1' +0 结果为123 MySQL里面如何用sql语句让字符串的‘123’转换为数字 ...

  10. Shell脚本中执行sql语句操作mysql的5种方法【转】

    对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的 ...

随机推荐

  1. vue项目搭建(vue2+elementUI+less)

    装node.js然后控制台输入node -v有版本号就是成功了 如是是windows系统建议装个git ,我这边习惯用命令行了 按照vue 和vue-cli vue-cli是一个vue的脚手架 按照提 ...

  2. Mac 启动转换助理 安装 win10

    Mac 启动转换助理 安装 win10 Mac的处理器 是Inter芯 才有该功能 打开启动转换助理/Bootcamp 设置分区大小 win10安装完成后 在左侧的此电脑中找到咱们的Boot Camp ...

  3. docker简单实战

    1.为ubuntu镜像添加ssh服务 1.1查看可用的ubuntu版本 1)访问ubuntu镜像库地址:https://hub.docker.com/search?q=ubuntu&type= ...

  4. linux 挂载移动硬盘

    fdisk -l mkdir -p /mnt/usbhd1 mount -t ntfs /dev/sdc1 /mnt/usbhd1 # 挂载 umount /mnt/usbhd1 # 解挂载 http ...

  5. linux dma

    https://bootlin.com/pub/conferences/2015/elc/ripard-dmaengine/ripard-dmaengine.pdf https://biscuitos ...

  6. 操作系统实战45讲笔记- 07 Cache与内存:程序放在哪儿?

    程序局部性原理: CPU 大多数时间在执行相同的指令或者与此相邻的指令 时间局部性VS空间局部性: a. 时间局部性:当前访问的指令或数据,也可能在之后访问: b. 空间局部性:当程序访问内存地址x时 ...

  7. 微信小程序搜索排名权重!

    最后,再介绍一下排名权重的计算比例: 1.小程序上线时间(占比5%) 2.描述中完全匹配出现关键词次数越多,排名越靠前(10%) 3.标题中关键词出现1次,且整体标题的字数越短,排名越靠前(35%) ...

  8. iOS MacOS 系统时间(时间戳)格式化

    #pragma mark -原始数据是20220608155116,加工成2022/06/08 15:51:16 -(NSString *)timeString:(NSString *)toIndex ...

  9. TP5--数据库基本操作

    /** * 插入数据 * 执行成功返回影响数据的条数,执行失败返回false */ //添加一条数据 $data = [ 'name'=>'wangwu', 'pwd'=>123456 ] ...

  10. PowerShell学习笔记一_cmdlet、管道、如何入门

    PowerShell文件: .ps1 脚本文件 .psm1 模块文件 .psd1 模块描述文件 cmdlet(命令行) 组成: 动词-名词,例如: 1. Get-Service(获取所有服务),类似于 ...