mysql数据库

SQL结构化查询语言

1.数据定义语言(DDL):用于定义和管理数据对象,包括数据库,数据表等。例如:CREATE,DROP,ALTER等。

数据库 -> 数据表:对数据库或数据表的创建、删除、修改等操作

2.数据操作语言(DML):用于操作数据库对象中所包含的数据。例如:INSERT,UPDATE,DELETE语句。

对数据的 增、删、改 这些操作,就是数据操作语言

3.数据查询语言(DQL):用于查询数据库对象中所包含的数据,能够进行单表查询,

连接查询,嵌套查询,以及集合查询等各种复杂程度不同的数据库查询,并将数据返回客户机中显示。SELECT

4.数据控制语言(DCL):是用来管理数据库的语言,包括管理权限及数据更改。

数据库

用途

Mysql

登录数据库

登录数据库

1、cmd窗口(任何路径)输入:

mysql -u root –p 回车

(注: root是用户名,本机 不用指定ip)

mysql –h ip -u root –p 回车

(注:非本机 指定-h ip)

2、再输入密码12345(12345为本机密码)

3、use T2 ---指定数据库(T2为本机mysql一个库)

 

退出数据库

退出数据库

exit

DDL(数据定义语言)

创建数据库

create database 数据库名

DDL(数据定义语言)

删除数据库

drop database 数据库名

 

查看所有已创建的数据库

show databases

 

查看所有表

show tables

 

查看所有用户

select user,host from mysql.user

SELECT User, Host, Password FROM mysql.user;

 

查看所有用户的权限

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

 

查看某表结构。

desc 表名;

DDL(数据定义语言)

创建表

CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));

例如:

CREATE TABLE users(c_num int(5) primary key,name varchar(10),sex varchar(5),age int(10))

DDL(数据定义语言)

删除表

drop table 表名

DDL(数据定义语言)

修改表---增加key

先删除主键

alter table 表名 drop primary key;

然后再增加主键

alter table 表名 add primary key(id);

DDL(数据定义语言)

修改表---修改表名

alter table 原名 rename 新名

DDL(数据定义语言)

修改表—字段类型

alter table 表名 modify column 字段名 类型;

alter table uinfo modify column pw char(60);

DDL(数据定义语言)

修改表—增加列

alter table表名add column age char(5)

DDL(数据定义语言)

修改表—修改列名

alter table 表名 change 原名 新名 char(20)

DML(数据操作语言)

表插入行数据

insert into 表名 (列名) values (值)

例如:

insert into users(c_num,name,sex,age) values(1,"lily","girl","19")

insert into app_student(id,name,age,sex) values('1','lily','19','female')--------------如果增加数据报错,查看表名是否错误,是否有此字段,单引号是否填写

DML(数据操作语言)

表删除数据

delete from 表名 where 条件;

DML(数据操作语言)

表编辑数据

UPDATE 表名SET 新值 WHERE 条件

例如:

UPDATE 表名SET age = '12' WHERE id = 4

DQL(数据查询语言)

去重

distinct

例如:

select distinct 字段名 from 表名;

 

字符串连接

concat(str1, str2,...)-------将多个字符串连接为一个字符串(如果有一个字符串为空,此行返回null)

例如:

select concat(id,name) as t from u;

 

复制表

只复制表结构到新表

 

CREATE TABLE 新表 LIKE 旧表 ;

复制表结构及数据到新表

 

CREATE TABLE 新表 SELECT * FROM 旧表

复制旧表的数据到新表(假设两个表结构一样) 

 

INSERT INTO 新表 SELECT * FROM 旧表

 

复制旧表的数据到新表(假设两个表结构不一样)

 

INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 旧表

 

取平均值avg

表结构

c_num,name,age,sex,t

             

取最大值max

 

select sex,max(age) from users group by sex;

求和  sum

 

select sex, sum(age) from users group by sex;

 

Group 与 having

建表:

A: create table record(name char(20),course char(20),score char(20))
B: insert into chengji(name,kecheng,fenshu) values('王五','英语','90')

 

 

 

1、查询出每门课都大于80 分的学生姓名:

方法一:

select distinct name from table where name not in (select distinct name from table where fenshu<=80)

方法二:

select name from record group by name having min(score)>80

2、查询每种课程的最高分数人员信息

select name,course,max(score) from record group by course

 

建表:

A:create table student(auto char(20),id char(20),name char(20),courseid char(20),coursname char(20),score char(20))

 

 


1、  删除除了auto不同, 其他都相同的学生冗余信息

delete from student where auto not in (select auto from student group by id,na
me,courseid,coursname,score);

 

posted @ 2018-11-02 15:40  文城清枫  阅读(181)  评论(0编辑  收藏  举报