목차
一、用户创建、权限、删除" >一、用户创建、权限、删除
二、数据库与表显示、创建、删除
三、表复制及备份还原
四、数据库表中数据操作
五、修改表的列与表名
六、修改表中的数据
데이터 베이스 MySQL 튜토리얼 MySql语句大全:创建、授权、查询、修改等_MySQL

MySql语句大全:创建、授权、查询、修改等_MySQL

Jun 01, 2016 pm 01:00 PM
백과 사전 성명

一、用户创建、权限、删除

1、连接MySql操作

连接:mysql -h 主机地址 -u 用户名 -p 用户密码 (注:u与root可以不用加空格,其它也一样)
断开:exit (回车)

打开cmd,输入

mysql -h 127.0.0.1 -u root -p 然后输入密码。就可以连接到本地的MySql数据库了。

\

2、 创建用户:

命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';


说明:

username - 你将创建的用户名,

host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%.

password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.

例子:

CREATE USER 'lin'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '';
CREATE USER 'pig'@'%';

\

登陆时,先把当前exit,再输入以下

mysql -h 127.0.0.1 -u linlin -p 密码

mysql -h 127.0.0.1 -u pig -p 密码

\
3、授权:

命令:GRANT privileges ON databasename.tablename TO 'username'@'host'


说明:

privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.

例子:

GRANT SELECT, INSERT ON school.* TO 'lin' @'%';
GRANT ALL ON *.* TO 'pig'@'%';

注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;



4、设置与更改用户密码

命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');如果是当前登陆用户用SET PASSWORD = PASSWORD("newpassword");

例子: SET PASSWORD FOR 'lin'@'%' = PASSWORD("123456");
 

\
5、撤销用户权限

命令: REVOKE privilege ON databasename.tablename FROM 'username'@'host';

说明: privilege, databasename, tablename - 同授权部分.

例子: REVOKE SELECT ON *.* FROM 'pig'@'%';

注意: 假如你在给用户'pig'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'pig'@'%', 则在使用REVOKE SELECT ON *.* FROM 'pig'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO 'pig'@'%';则REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤销该用户对test数据库中user表的Select 权限.

具体信息可以用命令SHOW GRANTS FOR 'pig'@'%'; 查看.

6、删除用户

命令: DROP USER 'username'@'host';

 

二、数据库与表显示、创建、删除

 

1、数据库显示、创建、删除


显示数据库:show databases;
创建库:create database 库名;
删除库:drop database 库名;
使用库(选中库):use 库名;

\

 

2、表显示、创建、删除

显示数据表:show tables; (要先用use 数据库名选定数据库)

\
显示表结构:describe 表名;或者desc 表名

\
创建表:create table 表名 (字段设定列表);

 

CREATE TABLE
    USER
    (
        name VARCHAR(30) NOT NULL,
        id INT DEFAULT '0' NOT NULL,
        stu_id INT,
        phone VARCHAR(20),
        address VARCHAR(30) NOT NULL,
        age INT(4) NOT NULL,
        PRIMARY KEY (name),
        CONSTRAINT stu_id UNIQUE (stu_id)
    )
    ENGINE=InnoDB DEFAULT CHARSET=utf8;
로그인 후 복사
删除表:drop table 表名;

 

句法:DROP DATABASE [IF EXISTS] db_name

功能:DROP DATABASE删除数据库中的所有表和数据库。要小心地使用这个命令!

DROP DATABASE返回从数据库目录被删除的文件的数目。通常,这3倍于表的数量,因为每张表对应于一个“.MYD”文件、一个“.MYI”文件和一个“.frm”文件。

在MySQL 3.22或以后版本中,你可以使用关键词IF EXISTS阻止一个错误的发生,如果数据库不存在。

 

三、表复制及备份还原

 

假设现在有表books:
1.复制表结构 1.1 含有主键等信息的完整表结构 CREATE table 新表名 LIKE book;
1.2 只有表结构,没有主键等信息 create table 新表名 select * from books; 或 create table 新表名 as(select * from book); 或 create table 新表名 select * from books where1=2;
2.将旧表中的数据灌入新表INSERT INTO 新表 SELECT * FROM 旧表;注:新表必须已经存在
3.输入创建表的DDL语句show create table 表名;
4.清空表数据truncate table 表名;
5.备份数据库比如备份library数据库进去Mysql的bin目录E:\mysql-5.6.23-win32\bin利用“mysqldump -u 用户名 -p 数据库名>备份名字”导出数据库到文件C:\Program Files\MySQL\MySQL Server 5.5\bin>mysqldump -u root -p test >test.sqlEnter password: ***即可.
\
E:\mysql-5.6.23-win32\bin目录下
\
6.还原数据库还原test数据库为例先create database test1然后 下mysql>下输入source 路径即可。
要注意test.sql所在的路径!
\

 


 

 

四、数据库表中数据操作

1、清除mysql表中数据

delete from 表名;

truncate table 表名;

不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容。

效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。

delete的效果有点像将mysql表中所有记录一条一条删除到删完,

而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。

2、删除表中的某些数据

delete from命令格式:delete from 表名 where 表达式

例如,删除表 MyClass中编号为1 的记录:

代码如下:

mysql> delete from MyClass where id=1;

 

五、修改表的列与表名

 

1、给列更名
>alter table 表名称 change 字段名称 字段名称

例如:
alter table pet change weight wei;
2、给表更名
>alter table 表名称 rename 表名称

例如:

alter table tbl_name rename new_tbl

3、修改某个表的字段类型及指定为空或非空

>alter table 表名称 change 字段名称字段名称 字段类型 [是否允许非空];

>alter table 表名称 modify 字段名称字段类型 [是否允许非空];

4、修改某个表的字段名称及指定为空或非空

>alter table 表名称 change 字段原名称字段新名称 字段类型 [是否允许非空];

例如:

修改表expert_info中的字段birth,允许其为空

代码如下:

>alter table expert_info change birth birth varchar(20) null;

 

 

六、修改表中的数据

1.增加一个字段(一列)

alter table table_name add column column_name type default value; type指该字段的类型,value指该字段的默认值

例如:

代码如下:

alter table mybook add column publish_house varchar(10) default ”;

2.更改一个字段名字(也可以改变类型和默认值)

alter table table_name change sorce_col_name dest_col_name type defaultvalue; source_col_name指原来的字段名称,dest_col_name

指改后的字段名称

例如:

代码如下:

alter table Board_Info change IsMobile IsTelphone int(3) unsigned default1;

3.改变一个字段的默认值

alter table table_name alter column_name set default value;

例如:

代码如下:

alter table book alter flag set default '0′;

4.改变一个字段的数据类型

alter table table_name change column column_name column_name type;

例如:

代码如下:

alter table userinfo change column username username varchar(20);

5.向一个表中增加一个列做为主键

alter table table_name add column column_name type auto_increment PRIMARYKEY;

例如:

代码如下:

alter table book add column id int(10) auto_increment PRIMARY KEY;

6.数据库某表的备份,在命令行中输入:

mysqldump -u root -p database_name table_name > bak_file_name

例如:

代码如下:

mysqldump -u root -p f_info user_info > user_info.dat

7.导出数据

select_statment into outfile”dest_file”;

例如:

代码如下:

select cooperatecode,createtime from publish limit 10 intooutfile”/home/mzc/temp/tempbad.txt”;

8.导入数据

load data infile”file_name” into table table_name;

例如:

代码如下:

load data infile”/home/mzc/temp/tempbad.txt” into table pad;

9.将两个表里的数据拼接后插入到另一个表里。下面的例子说明将t1表中的com2和t2表中的com1字段的值拼接后插入到tx表对应的

字段里。

例如:

代码如下:

insert into tx select t1.com1,concat(t1.com2,t2.com1) from t1,t2;

10,删除字段

alter table form1 drop column 列名;

 

七、查询表

mysql查询的五种子句

where(条件查询)、having(筛选)、group by(分组)、order by(排序)、limit(限制结果数)

 

1、查询数值型数据:
SELECT * FROM tb_name WHERE sum > 100;
查询谓词:>,=,,!=,!>,!,=
2、查询字符串
SELECT * FROM tb_stu WHERE sname = '小刘'
SELECT * FROM tb_stu WHERE sname like '刘%'
SELECT * FROM tb_stu WHERE sname like '%程序员'
SELECT * FROM tb_stu WHERE sname like '%PHP%'

3、查询日期型数据
SELECT * FROM tb_stu WHERE date = '2011-04-08'
注:不同数据库对日期型数据存在差异: :
(1)MySQL:SELECT * from tb_name WHERE birthday = '2011-04-08'
(2)SQL Server:SELECT * from tb_name WHERE birthday = '2011-04-08'
(3)Access:SELECT * from tb_name WHERE birthday = #2011-04-08#

4、查询逻辑型数据
SELECT * FROM tb_name WHERE type = 'T'
SELECT * FROM tb_name WHERE type = 'F'
逻辑运算符:and or not

6、查询非空数据
SELECT * FROM tb_name WHERE address '' order by addtime desc
注:相当于PHP中的!=

6、利用变量查询数值型数据
SELECT * FROM tb_name WHERE id = '$_POST[text]'
注:利用变量查询数据时,传入SQL的变量不必用引号括起来,因为PHP中的字符串与数值型数据进行连接时,程序会自动将数值型数据转变成字符串,然后与要连接的字符串进行连接

7、利用变量查询字符串数据
SELECT * FROM tb_name WHERE name LIKE '%$_POST[name]%'
完全匹配的方法"%%"表示可以出现在任何位置

8、查询前n条记录
SELECT * FROM tb_name LIMIT 0,$N;
limit语句与其他语句,如order by等语句联合使用,会使用SQL语句千变万化,使程序非常灵活

9、查询后n条记录
SELECT * FROM tb_stu ORDER BY id ASC LIMIT $n

10、查询从指定位置开始的n条记录
SELECT * FROM tb_stu ORDER BY id ASC LIMIT $_POST[begin],$n
注意:数据的id是从0开始的

11、查询统计结果中的前n条记录
SELECT * ,(yw+sx+wy) AS total FROM tb_score ORDER BY (yw+sx+wy) DESC LIMIT 0,$num


12、查询指定时间段的数据
SELECT 要查找的字段 FROM 表名 WHERE 字段名 BETWEEN 初始值 AND 终止值
SELECT * FROM tb_stu WHERE age BETWEEN 0 AND 18

13、按月查询统计数据
SELECT * FROM tb_stu WHERE month(date) = '$_POST[date]' ORDER BY date ;
注:SQL语言中提供了如下函数,利用这些函数可以很方便地实现按年、月、日进行查询
year(data):返回data表达式中的公元年分所对应的数值
month(data):返回data表达式中的月分所对应的数值
day(data):返回data表达式中的日期所对应的数值

14、查询大于指定条件的记录
SELECT * FROM tb_stu WHERE age>$_POST[age] ORDER BY age;

15、查询结果不显示重复记录
SELECT DISTINCT 字段名 FROM 表名 WHERE 查询条件
注:SQL语句中的DISTINCT必须与WHERE子句联合使用,否则输出的信息不会有变化 ,且字段不能用*代替


16、NOT与谓词进行组合条件的查询
(1)NOT BERWEEN … AND … 对介于起始值和终止值间的数据时行查询 可改成 终止值
(2)IS NOT NULL 对非空值进行查询
(3)IS NULL 对空值进行查询
(4)NOT IN 该式根据使用的关键字是包含在列表内还是排除在列表外,指定表达式的搜索,搜索表达式可以是常量或列名,而列名可以是一组常量,但更多情况下是子查询

17、显示数据表中重复的记录和记录条数
SELECT name,age,count(*) ,age FROM tb_stu WHERE age = '19' group by date


18、对数据进行降序/升序查询
SELECT 字段名 FROM tb_stu WHERE 条件 ORDER BY 字段 DESC 降序
SELECT 字段名 FROM tb_stu WHERE 条件 ORDER BY 字段 ASC 升序
注:对字段进行排序时若不指定排序方式,则默认为ASC升序

19、对数据进行多条件查询
SELECT 字段名 FROM tb_stu WHERE 条件 ORDER BY 字段1 ASC 字段2 DESC …
注意:对查询信息进行多条件排序是为了共同限制记录的输出,一般情况下,由于不是单一条件限制,所以在输出效果上有一些差别。

20、对统计结果进行排序
函数SUM([ALL]字段名) 或 SUM([DISTINCT]字段名),可实现对字段的求和,函数中为ALL时为所有该字段所有记录求和,若为DISTINCT则为该字段所有不重复记录的字段求和
如:SELECT name,SUM(price) AS sumprice FROM tb_price GROUP BY name

SELECT * FROM tb_name ORDER BY mount DESC,price ASC

21、单列数据分组统计
SELECT id,name,SUM(price) AS title,date FROM tb_price GROUP BY pid ORDER BY title DESC
注:当分组语句group by排序语句order by同时出现在SQL语句中时,要将分组语句书写在排序语句的前面,否则会出现错误

22、多列数据分组统计
多列数据分组统计与单列数据分组统计类似
SELECT *,SUM(字段1*字段2) AS (新字段1) FROM 表名 GROUP BY 字段 ORDER BY 新字段1 DESC
SELECT id,name,SUM(price*num) AS sumprice FROM tb_price GROUP BY pid ORDER BY sumprice DESC
注:group by语句后面一般为不是聚合函数的数列,即不是要分组的列

23、多表分组统计
SELECT a.name,AVG(a.price),b.name,AVG(b.price) FROM tb_demo058 AS a,tb_demo058_1 AS b WHERE a.id=b.id GROUP BY b.type;

 

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

i5-13490F 프로세서 사양 및 성능에 대한 종합적인 검토 i5-13490F 프로세서 사양 및 성능에 대한 종합적인 검토 Jan 02, 2024 pm 06:12 PM

i5-13490F는 최근 출시된 CPU로, 13400F에 비해 성능이 약간 향상되었으며, 전력 소모가 적고 성능도 뛰어납니다. i5-13490F 프로세서 매개변수에 대한 종합 평가: 1. i5-13490F 프로세서의 성능은 i5-13400F에 비해 0.2GHz 향상되었으며 레벨 3 캐시는 24MB로 증가했습니다. 2. 싱글 코어 성능과 레벨 3 캐시의 향상은 게이머들에게 성능 면에서 도움이 될 것입니다. 3. 2K 해상도에서는 i5-13490F가 i5-13400F보다 게임 성능이 약간 더 좋습니다. i7-13490F 매개변수 평가 전체 성능 벤치마크: CPU-z의 벤치마크 점수가 단일에 도달했습니다.

Windows 명령 프롬프트에 대한 전체 가이드 Windows 명령 프롬프트에 대한 전체 가이드 Feb 20, 2024 pm 02:09 PM

WindowsCMD(Windows 명령 프롬프트)는 Windows 운영 체제의 명령줄 도구입니다. 명령줄을 통해 작동하며 많은 시스템 관리, 파일 관리, 네트워크 관리 및 기타 작업을 완료할 수 있습니다. 이 기사에서는 일반적으로 사용되는 명령과 해당 기능을 포함하여 Windows CMD 명령의 전체 목록을 독자에게 소개합니다. 1. 일반적으로 사용되는 명령 cd 명령: 현재 디렉터리를 전환하는 데 사용됩니다. dir 명령: 현재 디렉터리의 파일과 하위 디렉터리를 표시합니다. mkdir 명령: 새 디렉터리를 만듭니다. rmd

PHP8.0의 다중 캐치 문 PHP8.0의 다중 캐치 문 May 14, 2023 pm 01:51 PM

웹 애플리케이션이 개발되면서 PHP 언어가 웹 개발에 널리 사용되었습니다. PHP8.0 버전에서는 새로운 언어 기능인 multi-catch 문이 도입되었습니다. 다중 캐치 문이란 무엇입니까? 이전 PHP 버전에서는 개발자가 여러 예외 유형을 처리하기 위해 여러 catch 문을 작성해야 했습니다. 예를 들어, 다음 코드 블록은 두 가지 다른 예외의 처리를 보여줍니다.

Python의 흐름 제어 문을 이해하려면 여러 상황을 마스터해야 합니다. Python의 흐름 제어 문을 이해하려면 여러 상황을 마스터해야 합니다. Jan 20, 2024 am 08:06 AM

Python은 배우기 쉽고 효율적이며 유연하며 널리 사용되는 고급 프로그래밍 언어입니다. Python에서 흐름 제어 문은 프로그램 논리 구현의 중요한 부분입니다. 이 글에서는 Python에서 일반적으로 사용되는 흐름 제어 문을 소개하고 이해를 돕기 위한 코드 예제를 제공합니다. Python에서 일반적인 흐름 제어 문에는 조건문과 루프 문이 포함됩니다. 조건문은 true 또는 false 조건에 따라 다양한 코드 블록을 실행하며 실행 분기를 결정하고 선택하는 데 사용됩니다. 반복문은 반복하는데 사용됩니다.

MySQL에 데이터 삽입 명령문을 구현하는 방법은 무엇입니까? MySQL에 데이터 삽입 명령문을 구현하는 방법은 무엇입니까? Nov 08, 2023 am 11:48 AM

MySQL에 데이터 삽입 명령문을 구현하는 방법은 무엇입니까? MySQL 데이터베이스를 사용할 때 데이터 삽입은 매우 기본적이고 일반적인 작업입니다. 데이터를 삽입하면 새로운 레코드를 데이터베이스 테이블에 추가하여 비즈니스 운영을 지원할 수 있습니다. 이 기사에서는 MySQL에서 INSERT 문을 사용하여 데이터 삽입 작업을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. MySQL의 INSERT 문은 데이터베이스 테이블에 새 레코드를 삽입하는 데 사용됩니다. 기본 구문 형식은 다음과 같습니다. INSERTINTOt

MySQL에서 테이블 잠금을 해제하는 명령문을 구현하는 방법은 무엇입니까? MySQL에서 테이블 잠금을 해제하는 명령문을 구현하는 방법은 무엇입니까? Nov 08, 2023 pm 06:28 PM

MySQL에서 테이블 잠금을 해제하는 명령문을 구현하는 방법은 무엇입니까? MySQL에서 테이블 잠금은 데이터 무결성과 일관성을 보호하기 위해 일반적으로 사용되는 잠금 메커니즘입니다. 트랜잭션이 테이블을 읽고 쓰는 동안 다른 트랜잭션은 테이블을 수정할 수 없습니다. 이 잠금 메커니즘은 어느 정도 데이터 일관성을 보장하지만 다른 트랜잭션이 차단될 수도 있습니다. 따라서 어떤 이유로 트랜잭션을 계속할 수 없는 경우 다른 트랜잭션이 계속될 수 있도록 테이블을 수동으로 잠금 해제해야 합니다. MySQL은 다양한 기능을 제공합니다.

MySQL에서 사용자 비밀번호를 변경하는 명령문을 구현하는 방법은 무엇입니까? MySQL에서 사용자 비밀번호를 변경하는 명령문을 구현하는 방법은 무엇입니까? Nov 08, 2023 am 09:05 AM

MySQL은 데이터를 관리하고 저장하는 데 사용되는 일반적으로 사용되는 관계형 데이터베이스 시스템입니다. MySQL에서 사용자 비밀번호는 데이터베이스 보안을 보호하는 중요한 요소 중 하나입니다. 일상적인 데이터베이스 관리에서는 데이터베이스 보안을 위해 사용자의 비밀번호를 변경해야 하는 경우가 많습니다. 그렇다면 MySQL에서 사용자 비밀번호 변경 명령문을 구현하는 방법은 무엇입니까? 이 문서에서는 구체적인 코드 예제를 제공합니다. ALTERUSER 문을 통해 MySQL 사용자 비밀번호를 변경합니다. ALTERUSER 문은 MySQL8.0 이상입니다.

완전한 가이드: Django 버전 찾기 완전한 가이드: Django 버전 찾기 Jan 04, 2024 am 10:14 AM

특정 코드 예제가 필요한 Django 버전 쿼리 방법의 전체 목록 개요: Django는 웹 개발에 널리 사용되는 오픈 소스 웹 애플리케이션 프레임워크입니다. 간단하고 유연하며 효율적이며 개발자가 강력한 웹 애플리케이션을 신속하게 구축하는 데 도움이 될 수 있습니다. 개발자에게는 현재 사용되는 Django 버전과 관련 쿼리 방법을 이해하는 것이 매우 중요합니다. 이 기사에서는 Django 버전 쿼리 방법을 자세히 소개하고 독자가 이를 더 잘 적용할 수 있도록 구체적인 코드 예제를 제공합니다.

See all articles