Mysql 基础语法
数据库基本语法:
DDL:Data Defination Lanuage: 数据定义语言CREATE, ALTER, DROP
DML:Data Manapulate Language: 数据操作语言INSERT, REPLACE, UPDATE, DELETE
DCL:Data Control Language: 数据控制语言GRANT, REVOKE
常用命令:
mysql命令不区分大小写 这些是基本常识
DDL CREATEALTERDROP
DML 操纵语言INSERTUPDATEDELETE
DCL 控制语言GRANTREVOKE
第一篇 DDL 库和表 create alter drop
mysql> create database mydb;
Query OK, 1 row affected (0.01 sec)
mysql> use mydb;
Database changed
mysql> show tables;
Empty set (0.00 sec)
mysql> create table students (id char(20),name char(20),age char(10),score char(10)); 建表并添加4个字段和字段的类型
Query OK, 0 rows affected (0.10 sec)
mysql> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| students |
+----------------+
1 row in set (0.00 sec)
mysql> create table teachers as select * from students; 建立教师表,字段同学生表
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| students |
| teachers |
+----------------+
2 rows in set (0.00 sec)
mysql> desc students;
mysql> desc teachers;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id | char(20) | YES | | NULL | |
| name | char(20) | YES | | NULL | |
| age | char(10) | YES | | NULL | |
| score | char(10) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
mysql> alter table teachers add subject varchar(100); 添加字段
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc teachers;
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id | char(20) | YES | | NULL | |
| name | char(20) | YES | | NULL | |
| age | char(10) | YES | | NULL | |
| score | char(10) | YES | | NULL | |
| subject | varchar(100) | YES | | NULL | |
+---------+--------------+------+-----+---------+-------+
mysql> alter table teachers drop score; 删除字段
Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc teachers;
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id | char(20) | YES | | NULL | |
| name | char(20) | YES | | NULL | |
| age | char(10) | YES | | NULL | |
| subject | varchar(100) | YES | | NULL | |
+---------+--------------+------+-----+---------+-------+
mysql> alter table teachers change id teacherid char(30); 修改字段名,用change
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc teachers;
+-----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| teacherid | char(30) | YES | | NULL | |
| name | char(20) | YES | | NULL | |
| age | char(10) | YES | | NULL | |
| subject | varchar(100) | YES | | NULL | |
+-----------+--------------+------+-----+---------+-------+
mysql> alter table teachers modify teacherid varchar(5); 修改字段属性,用modify
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc teachers;
+-----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| teacherid | varchar(5) | YES | | NULL | |
| name | char(20) | YES | | NULL | |
| age | char(10) | YES | | NULL | |
| subject | varchar(100) | YES | | NULL | |
+-----------+--------------+------+-----+---------+-------+
mysql> drop table teachers; 删除表,drop table table_name
Query OK, 0 rows affected (0.00 sec)
总结1:查看库中的表:SHOW TABLES FROM db_name;查看表的结构:DESC tb_name;删除表:DROP TABLE tb_name;
修改表:ALTER TABLE tb_nameMODIFY 改字段属性CHANGE 改字段名称ADD 添加字段DROP 删除字段
help create table获取帮助 help alter table
第二篇 DML 数据修改 insert update delete ; select
mysql> insert into students (id,name,age,score) value('1','wxtan','18','99'),('2','yull','17','80'); 增加表内数据,insert into
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from students;
+------+-------+------+-------+
| id | name | age | score |
+------+-------+------+-------+
| 1 | wxtan | 18 | 99 |
| 2 | yull | 17 | 80 |
+------+-------+------+-------+
mysql> insert into students value('3','AA','30','60'); (如果全部字段都添加可以不用写)
Query OK, 1 row affected (0.00 sec)
mysql> select * from students;
+------+-------+------+-------+
| id | name | age | score |
+------+-------+------+-------+
| 1 | wxtan | 18 | 99 |
| 2 | yull | 17 | 80 |
| 3 | AA | 30 | 60 |
+------+-------+------+-------+
mysql> update students set age=14 where id=1; 修改表内数据,update table_name
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from students;
+------+-------+------+-------+
| id | name | age | score |
+------+-------+------+-------+
| 1 | wxtan | 14 | 99 |
| 2 | yull | 17 | 80 |
| 3 | AA | 30 | 60 |
+------+-------+------+-------+
3 rows in set (0.00 sec)
mysql> update students set age='28' where name='yull'; 修改表内数据,update table_name
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from students;
+------+-------+------+-------+
| id | name | age | score |
+------+-------+------+-------+
| 1 | wxtan | 14 | 99 |
| 2 | yull | 28 | 80 |
| 3 | AA | 30 | 60 |
+------+-------+------+-------+
3 rows in set (0.00 sec)
mysql> select * from students;
+------+-------+------+-------+
| id | name | age | score |
+------+-------+------+-------+
| 1 | wxtan | 14 | 99 |
| 2 | yull | 28 | 80 |
| 5 | bb | 44 | 55 |
| 6 | cc | 44 | 60 |
+------+-------+------+-------+
4 rows in set (0.00 sec)
mysql> delete from students where age='44'; 删除表内数据,delete from
Query OK, 2 rows affected (0.00 sec)
mysql> select * from students;
+------+-------+------+-------+
| id | name | age | score |
+------+-------+------+-------+
| 1 | wxtan | 14 | 99 |
| 2 | yull | 28 | 80 |
+------+-------+------+-------+
mysql> delete from students where age='14' or score='80'; 可以用or and等条件表达式
Query OK, 2 rows affected (0.00 sec)
mysql> select * from students;
Empty set (0.00 sec)
mysql> select * from students; 数据查询,select from
+------+--------+------+-------+
| id | name | age | score |
+------+--------+------+-------+
| 1 | apple | 20 | 88 |
| 3 | xigua | 10 | 50 |
| 2 | banana | 30 | 68 |
+------+--------+------+-------+
3 rows in set (0.00 sec)
mysql> select id,name from students;
+------+--------+
| id | name |
+------+--------+
| 1 | apple |
| 3 | xigua |
| 2 | banana |
+------+--------+
3 rows in set (0.00 sec)
mysql> select id,name from students where age=20;
+------+-------+
| id | name |
+------+-------+
| 1 | apple |
+------+-------+
1 row in set (0.00 sec)
第三篇 DCL 权限 grant revoke;show grants for
mysql> grant select,insert,update on mydb.students to 'wxtan2'@'192.168.8.%' identified by '123'; 给权限到某表,授予某账户(账户不存在则创建)
mysql> flush privileges; 刷新权限
[root@test mysql]# mysql -uwxtan2 -p123 -h192.168.8.104 从192.168.8.%进入数据库
Welcome to the MariaDB monitor.
MySQL [mydb]> select * from students;
+------+--------+------+-------+
| id | name | age | score |
+------+--------+------+-------+
| 1 | apple | 20 | 88 |
| 3 | xigua | 10 | 50 |
| 2 | banana | 30 | 68 |
+------+--------+------+-------+
3 rows in set (0.00 sec)
MySQL [mydb]> insert into students value('4','guapi','40','50'); 有insert权限
Query OK, 1 row affected (0.02 sec)
MySQL [mydb]> update students set name='apple222' where id='1'; 有update权限
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MySQL [mydb]> select * from students;
+------+----------+------+-------+
| id | name | age | score |
+------+----------+------+-------+
| 1 | apple222 | 20 | 88 |
| 3 | xigua | 10 | 50 |
| 2 | banana | 30 | 68 |
| 4 | guapi | 40 | 50 |
+------+----------+------+-------+
4 rows in set (0.00 sec)
MySQL [mydb]> delete from students where name='banana'; 没有delete权限
ERROR 1142 (42000): DELETE command denied to user 'wxtan2'@'192.168.8.101' for table 'students'
mysql> revoke update on mydb.students from 'wxtan2'@'192.168.8.%'; 回收update权限
mysql> flush privileges;
MySQL [mydb]> update students set name='apple545' where id='1'; 发现无法执行update命令
ERROR 1142 (42000): UPDATE command denied to user 'wxtan2'@'192.168.8.101' for table 'students'
MySQL [mydb]> insert into students value('6','guapi','40','50'); insert命令不受影响
Query OK, 1 row affected (0.00 sec)
MySQL [mydb]> select * from students; select命令不受影响
+------+----------+------+-------+
| id | name | age | score |
+------+----------+------+-------+
| 1 | apple555 | 20 | 88 |
| 3 | xigua | 10 | 50 |
| 2 | banana | 30 | 68 |
| 4 | guapi | 40 | 50 |
| 6 | guapi | 40 | 50 |
+------+----------+------+-------+
mysql> show grants for 'wxtan2'@'192.168.8.%'; 查询用户的权限命令;usage表示只有使用权
+-----------------------------------------------------------------------------------------------------------------+
| Grants for wxtan2@192.168.8.% |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'wxtan2'@'192.168.8.%' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257' |
| GRANT SELECT, INSERT ON `mydb`.`students` TO 'wxtan2'@'192.168.8.%' |
+-----------------------------------------------------------------------------------------------------------------+
mysql> grant all privileges on mydb.students to 'wxtan2'@'192.168.8.%' identified by '123456'; 给所有权限,并修改密码
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
第四篇 修改数据库默认密码
/etc/init.d/mysql stop (service mysqld stop )
/usr/bin/mysqld_safe --skip-grant-tables
另外开个SSH连接
[root@localhost ~]# mysql
mysql>use mysql;
mysql>update user set password=password("123456") where user="root";
mysql>flush privileges;
mysql>exit
CTRL+Z 终止进程
[root@apple ~]# jobs
[1]+ Stopped mysqld_safe --skip-grant-tables
[root@apple ~]# kill %1
[root@apple ~]# service mysqld start
Starting MySQL SUCCESS!
方法1: 用SET PASSWORD命令
首先登录MySQL。
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('123');
方法2:用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 123
方法3:用UPDATE直接编辑user表
首先登录MySQL。
mysql> use mysql;
mysql> update user set password=password('123') where user='root' and host='localhost';
mysql> flush privileges;
方法4:在忘记root密码的时候,可以这样
以windows为例:
1. 关闭正在运行的MySQL服务。
2. 打开DOS窗口,转到mysql\bin目录。
3. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
5. 输入mysql回车,如果成功,将出现MySQL提示符 >。
6. 连接权限数据库: use mysql; 。
6. 改密码:update user set password=password("123") where user="root";(别忘了最后加分号) 。
7. 刷新权限(必须步骤):flush privileges; 。
8. 退出 quit。
9. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。
转载于:https://blog.51cto.com/wxtan/1955822
Mysql 基础语法相关推荐
- MYSQL基础语法的使用
喜欢的朋友可以关注下,粉丝也缺. MYSQL介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之 ...
- MySQL基础语法大全(尚硅谷)
文章目录 一.为什么要学数据库 二.数据库的相关概念 DBMS DB SQL 数据库的好处 数据库相关概念 三.数据库存储数据的特点 四.初识MySQL 1.MySQL产品的介绍和安装 2.MySQL ...
- MySql基础语法-java学习
MySQL 目录结构 MySQL 的目录结构 描述 bin<目录> 所有 mysql 的可执行文件,如:mysql.exe MySQLInstanceConfig.exe 数据库的配置向导 ...
- MySQL基础语法与JDBC
文章目录 前言 (一)什么是SQL (二)什么是MySQL (三)MySQL的体系结构 ①连接层 ②服务层 ③可插拔存储引擎层 ④存储层 (四)MySQL的启动.停止.连接 一.基础知识 (一)基本术 ...
- MySQL基础语法总结
MySQL基本语法 注:使用到的数据库表在文章末尾 文章目录 MySQL基本语法 基础查询 条件查询 排序查询 常见函数 分组查询 连接查询 基础查询补充 子查询 分页查询 联合查询 查询总结 插入 ...
- Mysql 基础语法应用
第一章 MySQL基础介绍 1.数据库的基本概念数据库: DataBase 简称 DB作用: 用于永久性存储和管理数据的仓库 2.常见的数据库A.MySQL 简单的免费的数据库 ---> 现在学 ...
- MySQL基础语法(详细版)
文章目录 1.数据库的介绍 1.1 数据库概念 1.1.1 数据的存储方式 1.1.2 什么是数据库 2.数据库的安装与卸载 2.1数据库的安装 2.2数据库的卸载 3.数据库服务的启动与登录 3.1 ...
- mysql基础语法之(全文索引)
1.概要 InnoDB引擎对FULLTEXT索引的支持是MySQL5.6新引入的特性,之前只有MyISAM引擎支持FULLTEXT索引.对于FULLTEXT索引的内容可以使用MATCH()-AGAIN ...
- java:mysql基础语法
一,基础操作 1,创建表 CREATE TABLE `customers` ( //设置customers_id为整数并为自增长`customers_id` INT(11) PRIMARY KEY A ...
最新文章
- php脏在哪里,逍遥游户外联盟-人身上最“脏”的地方是哪里?3个地方,建议经常清洗 -...
- 二值mask图像 + RGB原图 生成可视化分割结果; 从二值mask获取分割轮廓点
- 二十三、Java类中重载和重写的区别
- 蓝湖怎么切图标注_【蓝湖指北】你真的会切图吗?
- 计算机精英协会考核题 —— 第一题:厄密多项式
- 《计算机网络》谢希仁第五版考试重点整理
- gtest 测试部分_全部关于测试–第2部分
- SQL - server 数据库基础知识
- 《数据结构》C++代码 堆(优先队列)
- 吉林大学超星MOOC学习通高级语言程序设计 C++ 实验03 模块化程序设计(2021级)
- R软件中调用windows字体二
- word中插入高分辨率图片,并且保存为PDF图片仍然高清的方法
- lae界面开发工具入门之介绍十--如何打包资源文件?
- SVN同步时忽略特定文件或文件夹
- Java初学者快速上手之实战“套路”
- win10 企业版的激活命令
- 中国省市县数据库(201905统计局)+ 自关联查询
- DvaJS的Subscription的使用
- 利用注册表优化系统,减少开机时间
- 论文《A High Spatial Resolution Depth Sensing Method Based on Binocular Structured Light》学习
热门文章
- datatables 树形表格 java数据组装_实学:Java开发自己的博客系统-第三十篇(后台添加栏目功能-4)...
- 移动端前端月历日历_前端基础:必须要知道的移动端适配(2)——分辨率
- linux怎么测试一个脚本,一个Linux中用于监控的简易shell脚本
- markdown显示箭头方法
- Java8中String.join方法,让我们的代码更优美
- 书屋(三):《浪潮之巅》品各大百年公司兴衰历程
- 视频直接变漫画!GAN又有了新玩法 | Demo+代码+论文
- 姚期智院士亲自讲授,一文读懂量子计算
- 路人实拍Waymo无人车:行为诡异,谨慎到让人怀疑人生
- Emgu-WPF 激光雷达研究-移动物体跟踪2