欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SQL语句增删改查

程序员文章站 2022-07-10 11:15:51
...

1. sql语句:增

创建用户:create user 指定的用户名 @ ‘连接用户的方式’ identified by ‘密码’
创建数据库:create datebase 要创建的数据库名
创建数据表:create table 表名 (id int,name char(30));
插入数据:insert into 表名 (id,name,age)values (1,‘字符串’,23)

2. sql语句:删

删除用户:drop user 指定的用户名@‘%’;
删除数据库:drop databese 数据库名;
删除数据表:drop table 表名;
删除数据:delete from 表名 where 要删除的内容    
delete from 表名 age between 23 and 25 删除23-25之间的

3. sql语句:改

修改数据表中的数据:update 表名 set age=21  where id=3  
把3的年龄改为21 修改数据表的名称:alter table 表名 rename 要改的名;
修改数据表的字段类型:alter table 表名 modify name char(50));
修改数据表的字段类型: alter table 表名 change name username char(50)not null  default ‘’;
添加删除字段:alter table 表名 add time datetime 增加     alter table 表名 drop time 删除

4. sql语句:查

查看所有数据库:show databases;
查看指定库内所有数据表:show tables;
查看指定数据表的字段结构:describe 表名
查看所有Mysql用户密码登录方式:select user,password,host from mysql.user;

5. sql语句授权

授予用户全部权限grant all on  库.表 to 用户@‘%’ 远程方式登录 授权对指定库所有权限
给存在的用户授权 创建用户并授权:grant all on 库.表 to 用户@‘@’identfied by ‘密码’
取消用户授权删除库表 表里数据的权限:revoke drop,delete on 库.表 from 用户@‘%’; 查
看指定用户的授权:show grants for 用户@‘%’;

6. sql语句启动关闭

service mysqld start   service mysqld stop
/etc/init.d/mysqld start    /etc/init.d/mysqld stop mysqld_safe & 源码包   
 mysqladmin -uroot -p123 shotdown
/etc/init.d/mysqld start    /etc/init.d/mysqld stop

7.修改密码

set password=password("123456");
修改普通用户密码 set password=password("123456");
修改管理员密码 update mysql.user set password=password("123") where user='root'; 
登录 mysql 使用命令修改密码 查看指定用户的授权  show grants for 用户@‘%’;

二、 Mysql主从原理

开启主服务bin-log日志记录功能,将主服务器的bin-log日志传到从服务器 从服务器根据日志内容将数据还原到本地,从服务器主动把主服务器的数据同步到本地
第一步:从服务器 发起连接 主服务器 传输对应的同步信息 user passwd ip pos_file pos-size IO 线程的对接 验证 pos 值偏移位
第二步:主服务器验证主机偏移位 如果出现偏移,主服务器将偏移数据推送至 从服务器, 推送完毕后进入休眠状态
第三步:从服务器获取中继日志完成后,从服务器的 IO 线程进入休眠, 并且唤醒从服务器的 SQL 线程,SQL 将中继日志运行得到对应数据 如果以后再出现新的对数据结构发生改变的 SQL 语句, 主服务端主动唤醒从服务器端的 IO 线程,传递数据,后边步骤同理
SQL 线程:将中继日志转储数据  I/O 线程:传输二进制日志   从服务器的随机端口连接至主服务器的 3306 端口
mysql主从服务器:从服务器主动把主服务器上的数据同步到本地(备份)   从服务器分摊主服务器的查询压力)(负载均衡)
什么是索引:索引本身是数据结构排好序的快速查找数据结构, 可以提高查找效率数据分身 快速查找 快速的定位查询内容速度
什么是主键:唯一标识一条记录,不能有重复,不允许为空,用来保证数据完整性, 主键只能有一个,自增自减             数据库主键,指的是一个或多列的组合。其值能唯一的表示表中的每一行, 通过他可强制表的实体完整性,主键主要用于其他表的外键关联, 以及本记录的修改和删除。
什么是外键:表的外键是另一个表的主键,外键可以有重复的,可以是空值, 用来和其他表建立联系用的,一个表可以有多个外键
数据库引擎: InnoDB存储引擎:支持事务安全表、支持行锁定和外键、支持外键完整性约束
MyISAM存储引擎:拥有较高的插入、查询速度,但不支持事物、 每个MyISAM表最大索引数是64、最大的键长度是1000字节、可以通过编译来改变、 可以把数据文件和索引文件放在不同目录
MEMORY存储引擎:将表中的数据存储到内存中,未查询和引用其他表数据提供快速访问。

优化sql语句的一般步骤: 通过show status 命令了解各种SQL的执行效率

可以根据需要加上参数来显示session级(当前连接,默认)和global级 (自数据库上次启动至今)的统计结果

通过explain 或 desc分析低效SQL的执行计划

通过show profile 分析SQL。

SQL语句分类:DML:数据操作语言 DDL:数据描述语言 DCL:数据控制语言

一般查询日志 二进制日志 慢查询日志