MySQL学习【第五篇SQL语句上】

一.mysql命令

1.连接服务端命令

1.mysql -uroot -p123 -h127.0.0.1

2.mysql -uroot -p123 -S /tmp/mysql.sock

3.mysql -uroot -p123 -hlocalhost

4.mysql -uroot -p123

2.mysql登陆后的一些命令

1.\h或者help     查看帮助

2.\G        格式化查看数据(以key:value形式)

3.\T 或 tee        记录日志

4.\c         结束命令

5.\s或者status  查看状态信息

6.\. 或者source    导入sql数据

7.\u 或use    使用数据库

8.\q或exit或quit  退出

3.mysqladmin的一些使用

1.查看mysql存活状态

[root@db01 ~]# mysqladmin -uroot -p123 ping

2.查看mysql状态信息

[root@db01 ~]# mysqladmin -uroot -p123 status

3.关闭mysql进程

[root@db01 ~]# mysqladmin -uroot -p123 shutdown

4.查看mysql参数

[root@db01 ~]# mysqladmin -uroot -p123 variables

5.删除数据库

[root@db01 ~]# mysqladmin -uroot -p123 drop DATABASE

6.创建数据库

[root@db01 ~]# mysqladmin -uroot -p123 create DATABASE

7.重载授权表

[root@db01 ~]# mysqladmin -uroot -p123 reload

8.刷新日志

[root@db01 ~]# mysqladmin -uroot -p123 flush-log

9.刷新缓存主机

[root@db01 ~]# mysqladmin -uroot -p123 reload

10.修改登陆密码

[root@db01 ~]# mysqladmin -uroot -p123 password

4.sql语句创建库

1.创建didi数据库

mysql> create database didi;

2.查看数据库

mysql> show databases;

3.查看创建数据库语句

mysql> show create database didi;

4.创建数据库添加字符集

mysql> create database test charset utf8;

5.删除数据库

mysql> drop database didi;

6.修改数据库属性

mysql> alter database test charset gbk;

7.进入数据库

mysql> use didi;

8.查看当前所在数据库

mysql> select database();

5.创表必须知道的数据类型

1.int          整数   -2^31~2^31 -1

2.varchar  字符类型(变长)

3.char     字符类型(定长)  

4.tinyint   整数 -128~128 (取值范围)

5.enum   枚举类型,只能选择枚举的一种类型,例如enum(‘m‘,‘f‘)

6.datatime    时间类型

6.创表所需的数据属性

1.not null            非空

2.primary key     主键(唯一且非空)

3.unique key      唯一键(唯一可非空)

4.auto_increment    自增(必须是主键或唯一键)

5.unsigned  非负

6.default      默认

7.comment       注释

7.创建表

1.创建一个名字叫student的表,表中有列名为(sid,sname,sage,sgender,cometime) ,其中sid为int类型,非空,设为主键,并且自增,注释为学号;sname为varchar类型为20位(一个中文占3位,和字符集有关),非空,注释为学生姓名;

sage为tinyint类型 ,非负数(因此取值范围为【0-256】),注释为学生年龄;sgender为枚举类型,非空,默认为男(m),注释为学生性别;cometime为datatime类型,默认为设置时间,注释为入学时间,字符集设为utf8,引擎为innodb

mysql> create table student(
sid INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT ‘学号’,
sname VARCHAR(20) NOT NULL COMMENT ‘学生姓名’,
sage TINYINT UNSIGNED COMMENT ‘学生年龄’,
sgender ENUM(‘m‘,‘f‘)  NOT NULL DEFAULT ‘m’ COMMENT ‘学生性别’,
cometime DATETIME default NOW() COMMENT ‘入学时间’)chatset utf8 engine innodb;

2.查看建表语句

mysql> show create table student;

3.查看当前数据库下有什么表

mysql> show tables;

4.查看表中列的定义信息

mysql> desc student;

5.删除表

mysql> drop table student;

6.修改表名

mysql> alter table student rename stu;

7.添加列和列定义

mysql> alter table stu add age int;

8.添加多个列

mysql> alter table stu add test varchar(20),add qq int;

9.添加列为第一列

mysql> alter table stu add classid varchar(20) first;

10.添加列为指定位置

mysql> alter table stu add phone int after age;

11.删除指定列

mysql> alter table stu modify sid varchar(20);

12.修改列名,以及约束条件

mysql> alter table stu change phone telphone char(20);

8.授权用户

1.授权root@‘10.0.0.1‘用户所有权限(并非超级管理员)

mysql> grant all on *.* to root@‘10.0.0.1‘ identified by ‘123‘;

2.授权一个用户为超级管理员

mysql> grant all on *.* to root@‘10.0.0.1‘ identified by ‘123‘ with grant option;

其他一些能在后面带的参数

max_queries_per_hour:一个用户每小时可发出的查询数量
max_updates_per_hour:一个用户每小时可发出的更新数量
max_connetions_per_hour:一个用户每小时可连接到服务器的次数
max_user_connetions:允许同时连接数量

3.收回一个用户select权限

mysql> revoke select on *.* from root@‘10.0.0.1‘;

4.查看某个用户的权限

mysql> show grants for root@‘10.0.0.1‘;

9.插入数据

1.插入单条数据

mysql> insert into stu(classid,birth.sname,sage,sgender,comtime,telnum,qq) values(‘linux01‘,1,NOW(),‘zhangsan‘,20,‘m‘,NOW(),110,123456);

2.插入多条数据

mysql> insert into stu(classid,birth.sname,sage,sgender,comtime,telnum,qq) values(‘linux01‘,1,NOW(),‘zhangsan‘,20,‘m‘,NOW(),110,123456),
(‘linux02‘,2,NOW(),‘zhangsi‘,21,‘f‘,NOW(),111,1234567);

10.更新数据

1.更新一张表某个列的所有数据

mysql> update student set sgender=‘f‘;

也可以

mysql> update student set sgender=‘f‘ where 1=1;

2.更新一张表某个列某行的数据(添加条件)

mysql> update student set sgender=‘f‘ where sid=1;

11.删除数据

1.删除一张表的所有数据

mysql> delete from student;

2.删除一张表指定区域的数据

mysql> delete from student where sid=3;

3.删除表

mysql> truncate table student;

4.伪删除,就是内容还在,但可以用一些手段看不到,真实工作环境使用

mysql> alter table student add status enum(1,0) default 1;

mysql> update student set status=‘0‘ where sid=1;

mysql> select * from student where status=1;

12.select用法

1.查询student表中的列name

mysql> select name from student;

2.限制查询行数为2

mysql> select name from student limit 2;

3.去重查询

mysql> select district(name) from student ;

4.查询所得到信息的数目

mysql> select count(name) from student;

5.查询指定信息(查二班的同学名字)

mysql> select name from student where class=2;

6.多条件查询(查二班的长的丑的人名字)

mysql> select name from student where class=2 and face=‘ugly‘;

7.模糊查询

mysql> select nam from student where name like ‘%H%‘ ;

8.顺序查询

mysql> select name from student order by hight asc;

9.倒叙查询

mysql> select name from student order by hight desc;

10.范围查询

mysql> select * from student where class>1;

11.范围or,in,不等于(<>)

mysql> select * from student where name=‘CHN‘ or face=‘ugly‘;

就当有个叫两个名字的人吧
mysql> select * from student where name in (‘张三‘,‘李四‘);

不在二班的人
mysql> select * from student where  class<>2;

原文地址:https://www.cnblogs.com/busiren/p/10579049.html

时间: 2024-11-09 13:14:44

MySQL学习【第五篇SQL语句上】的相关文章

MySQL优化(五) SQL 语句的优化

一.索引 1.分类 (1)主键索引:当一张表的某个字段设置为主键时,该字段就是主键索引: (2)唯一索引:索引列中的值必须是唯一的,但是允许为空值(可以存在多个null): (3)普通索引:基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值,纯粹为了查询数据更快一点: (4)全文索引:全文索引,只有在MyISAM引擎上才能使用,只能在CHAR,VARCHAR,TEXT类型字段上使用全文索引,介绍了要求,说说什么是全文索引,就是在一堆文字中,通过其中的某个关键字等,就能找到该字段所属

渗透学习笔记--基础篇--sql注入(字符型)

环境:dvwa1.7数据库:mysql前置知识:sql语句(Click me)      在进行sql注入前,我们先熟悉熟悉select语句.一.打开我们的sql终端 二.进入之后可以看到有mysql>我们输入sql语句,即可返回我们想要的结果,注意分号哟!我们使用的dvwa,在我们前几章设置的时候,会在数据库中生成一个dvwa的database:这里我们使用它来进行我们的select 语句:(1)使用dvwa数据库use dvwa;(2)在users表里查询用户名为'admin'的所有信息se

如何在mysql查找效率慢的SQL语句

如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow-queries[=file_name]选项启动时,mysqld 会写一个包含所有执行时间超过long_query_time 秒的SQL语句的日志文件,通过查看这个日志文件定位效率较低的SQL .下面介绍MySQL中如何查询慢的SQL语句 一.MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句 1,slow_query_log 这

如何查找MySQL中查询慢的SQL语句

本文导读:如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow-queries[=file_name]选项启动时,mysqld 会写一个包含所有执行时间超过long_query_time 秒的SQL语句的日志文件,通过查看这个日志文件定位效率较低的SQL .下面介绍MySQL中如何查询慢的SQL语句 一.MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句 1,slow_query_

2.MySQL用户管理,常用SQL语句,MySQL数据库备份与恢复

[toc] MySQL用户管理,重用SQL语句,MySQL数据库备份与恢复 一.MySQL用户管理 1.创建一个普通用户并授权 首先启动mysql,然后进入 [[email protected] ~]# /etc/init.d/mysqld start Starting MySQL... SUCCESS! [[email protected] ~]# mysql -uroot -pxavilinux Warning: Using a password on the command line in

Python3:sqlalchemy对mysql数据库操作,非sql语句

Python3:sqlalchemy对mysql数据库操作,非sql语句 # python3 # author lizm # datetime 2018-02-01 10:00:00 # -*- coding: utf-8 -*- ''' 数据起始日期:2015-05-08 数据库:mysql ''' import requests from bs4 import BeautifulSoup import json import pymysql import datetime import ti

mysql 删除重复数据的sql语句

CREATE TABLE tmp AS SELECT id FROM get_review_url WHERE (no,title,name,content) IN (SELECT no,title,name,content FROM get_review_url GROUP BY no,title,name,content HAVING COUNT(*) > 1) AND id NOT IN (SELECT MIN(id) FROM get_review_url GROUP BY no,tit

在MySQL命令行中使用SQL语句的规则

规则1: SQL语句必须以分号(;)或者(\G)结束 分号(;)是SQL语句的结束标志.如果遗忘了分号,而直接按下回车键时,在MySQL客户端上将显示如下 mySQL> SELECT * FROM customer -> 因为没有以分号结束,客户端认为SQL语句并没有结束,显示[->]等待用户继续输入命令,直到以分号结束.有些数据库中,支持省略最后的分号的情况. 规则2: 保留关键字不区分大小写 保留关键字是SQL中事先定义好的关键字,如上面检索语句中的SELECT.FROM等就属于保留

MySQL表横纵转置Sql语句

id, student, course, mark 1,  张三,    语文,  90 2,  李四,    语文,  80 3,  张三,    数学,  70 4,  李四,    数学,  80 现在想用转置表的方法转成二维表输出,要求格式是: student, 语文, 数学 张三,    90,  70 李四,    80,  80 select student,     sum(if(course='语文',mark,0)) as 语文,     sum(if(course='数学'