欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL数据库的增删改查操作详解

程序员文章站 2022-06-04 11:06:32
...

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

Sql的分类

DCL 数据控制语言

DDL 数据定义语言

DML 数据操作语言

DQL 数据查询语言

DDL 数据定义语言

相关命令:create drop  alter  truncate

操作数据库

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

Showdatabases;

查看数据库的定义信息

Showcreate database 数据库名称

切换、连接数据库

Use 数据库名称

查看当前连接的数据库


  1. 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*/


  1. Create table emp(
  2. );

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


  1. Alter table emp add address varchar(30);
/*修改emp表的address数据长度为40*/

  1. Alter table emp modify address varchar(40);

/* 修改address列名为add*/


  1. Alter table emp change address add varchar(40);

/*删除表emp的add列*/


  1. Alter table emp  drop add;

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

①Altertable emp rename to employee;

②Altertable emp rename employee;

删除表

Drop table 表名

约束简述

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

数据库约束

MySQL数据库的增删改查操作详解

约束详解

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