mysql数据库增删改查关键字_MySQL数据库的增删改查操作详解

转载请注明出处:http://blog.csdn.net/qq_35917489/article/details/78557465

Sql的分类

DCL 数据控制语言

DDL 数据定义语言

DML 数据操作语言

DQL 数据查询语言

DDL 数据定义语言

相关命令:create drop  alter  truncate

操作数据库

查看数据库服务器已有的数据库

Showdatabases;

查看数据库的定义信息

Showcreate database 数据库名称

切换、连接数据库

Use 数据库名称

查看当前连接的数据库

Select database();

创建数据库

Createdatabase 数据库名称

数据库的修改和删除

修改:alter database 数据库名称character set 字符编码名称

删除:alter database 数据库名称

Mysql常用数据类型

类型

释义

举例

Int

整数型

Age int;

double

浮点型

Double(5,2)表示最多5位,其中必须有两位小数

Char

固定长度字符串类型

当对性别等已知长度定义时,可用char

Varchar

可变长度字符串类型

当时文本等不知其长度可用varchar

Text

字符串类型

Data

日期类型

格式:yyyy-MM-dd

time

时间类型

格式:hh-mm-ss

blob

字节类型

timestamp

时间戳类型

格式为:yyyy-MM-dd  hh:mm:ss

操作表

查看当前库已有表

Showtables;

查看表定义信息

Showcreate table 表名;

查看表结构

Desc 表名

创建表

Createtable 表名(

列名 数据类型(长度),

列名 数据类型(长度)   //最后一列的定义不需逗号

…… ……

);

修改表

/*创建表emp*/

Create table emp(

);

/*为emp表添加列addressvarchar(30)*/

Alter table emp add address varchar(30);

/*

修改

emp

表的

address

数据长度为

40*/

Alter table emp modify address varchar(40);

/* 修改address列名为add*/

Alter table emp change address add varchar(40);

/*删除表emp的add列*/

Alter table emp  drop add;

/*修改emp表的表名为employee*/

①Altertable emp rename to employee;

②Altertable emp rename employee;

删除表

Drop table 表名

约束简述

完整性约束:保证数据库表中数据的正确性,合理性等。

数据库约束

约束详解

A.创建主键约束,主键列值必须非空切唯一,并且一个表有且仅有一个主键

方式一:

Create table stu(

Sid varchar(10)primary key;

Sname varchar(20)

);

方式二:

Create table stu(

Sid varchar(10),

Sname varchar(20),

Primary key(sid)

);

方式三:先创建表 然后修改表添加主键

Create table stu(

Sid varchar(10),

Sname varchar(20)

);

Alter table stu add primary key(sid);

主键自增 auto_increment  仅可用于第一种方式  且列的数据类型为int

B.非空约束notnull和唯一约束unique

Create table teacher(

Sid int primary key,

Sname varchar(20)not null unique,

Age int not null

);

外键约束

Foreignkey 引用主键字段值的列在从表中叫做外键

方式一:

Create table dept(

Deptno int,

Deptname varchar(20),

Primary key(deptno)

);

Create table emp(

Eid int,

Ename varchar(21),

E_d_no int,

Primary key(eid),

Foreign key(e_d_no)references dept(deptno)

);

方式二:

先定义表结构 然后修改表添加主键和外键(常用)

Create table emp(

Eid int,

Ename varchar(10),

E_d_no int

);

Create table dept(

Deptno int,

Deptname varchar(20)

);

/*修改主表 添加主键*/

Alter table dept add primary key(deptno);

/*修改从表 外键引用*/

Alter table emp add foreign key(e_d_no) references dept(deptno);

DML

对表数据的增删改

相关命令 insert updata delete

向表中插入数据

语法:insert into 表名(用逗号分隔的列名列表   可有可无)values(使用逗号分隔的每列的数据列表);

insert into stu(sid,sname,age,gender) values('M_001','tom',23,'male');

修改表数据

updata表名 set 列名=新值, 列名=新值……where子句(可有可无);

update student3 set sname='tomas',address='yowe' where sid=1;

update stu set sname=’jack’;

删除表中的数据

语法 delete from 表名where子句(可有可无)

delete from student3 where sid=1;

delete from stu;

使用truncate删除:

truncate[table] stu;

[table] 可有可无

delete和truncate区别

delete逐条删除数据(性能较低),表的数据不在但表的结构还在,删除有日志,相当于进了回收站

truncate(截断表):首先执行droptable删除表结构, 然后再执行create table创建表结构。性能较优。直接将表删掉然后在创建表,删除没有日志

DQL

命令只有select

语法:

Select selection_list 要查询的列名称

From table_list要查询表名称

1Where condition筛选数据行的条件

2Group by对结果分组

3Having condition分组后的筛选行的条件

4Order by对结果排序

得注意1234的先后顺序

基本查询

select  *  from stu;  /*查询所有列*/

select sname,age from stu;  /*查询指定列*/

条件查询

运算符

=  !=  <>  < <=  > >=

Between…and      In(set)      is null     and    or  not

举例:

a. 查询年龄大于35岁的人的姓名和年龄

Select sname,age from stu where age>35;

b. 查询年龄在15和35岁的人的姓名和年龄

Selectsname,age from stu where age between 15 and 35;

c. 查询年龄等于25、35、45岁的人的信息

select * from stu where age in(25,35,45);

d. 查询没有填写性别的人的信息

select * from stu where gender is null;

e. 查询年龄大于35岁的男性的信息

select * from stu where age>35 and gender=’man’;

f. 查询年龄大于35岁的信息

select * from stu where age>35;

g. 查询性别不为空的人的信息

Select* from stu where gender is not null;

模糊查询

模糊查询的通配符

% 表示任意数量的字符

_  表示任意一个字符

模糊查询关键字  like

举例:

a.查询名字是字母z开头的人

select * from stu where sname like ‘z%’;

b.查询名字包含b字母的人

select * from stu where sname like’%b%’;

c.查询名字包含n字母其n字母前只有两个字符的人

Select * from stu where sname like’__n%’;

列别名

使用as关键字为列定义别名,另外,该关键字可以省去 selectename as 名字, sal  as 月薪from emp e; select ename 名字, sal  月薪 from emp e;

排序

desc降序  asc升序(默认值)

查看雇员的月薪,并进行排序

select ename, sal  as sal fromemp  order by  sal desc;

聚合函数

聚合函数是用来做纵向运算的函数:

    COUNT():统计指定列不为NULL的记录行数;

    MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;

    MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;

    SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;

    AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;

注意:聚合函数只返回一个结果

举例

a.查询emp表中月薪大于2500的人数:

select count(*) from emp where sal>2500;

b.统计所有员工平均工资:

select avg(sal) from emp

多表查询

笛卡尔积查询:

select * from emp,dept;

消除笛卡尔积:

内连接(等值连接)

select * from emp e,dept d wheree.deptno=d.detpno;

常用数据库操作命令

primary  key 主键约束

auto_increment  自增(在Android中不用下划线,自增仅适用于integer类型)

not null  非空约束

unique  唯一约束

foreign key  外键约束

操作

创建数据库

create database 数据库名称

对表数据的增删改

插入数据

insert into 表名 (用逗号分割的列表名称,可有可无) values(使用逗号分隔的每列的数据列表)

创建表

create table 表名(列名 数据类型(长度),列名 数据类型(长度)......);

修改表数据

update 表名 set 列名=新值,列名=新值......where子句(可有可无)

删除表

delete from 表名 where子句(可有可无)

修改表添加列

alter table 表名 add address varchar(自定义数值);

你可能感兴趣的:(mysql数据库增删改查关键字)