MySQL补充

CREATE TABLE表名(

字段1 数据类型 约束,

字段2 数据类型 约束,

...

字段n 数据类型 约束

);

CREATE TABLE STUDENT(

Sid int primary key,

Sname varchar(20) nor null,

Ssex char(1),

Sage int

);

not null:

unique:

primary key

foreign key

check

NOT null

CREATE TABLR TEMP(

id int noy null,

name varchar(255) not null default ‘abc‘,

sex char null

);

Unique

cretate table temp(

id int not null, d

name varchar(25),

password varchar(16),

constraint uk_name_pwd unique(name)

);

primary key

cretate table temp(

id int primary key,

name varchar(25),

password varchar(16)

);

设置主键自增:auto_increment

create table temp(

id int auto_increment primary key,

name varchar(25),

password varchar(16)

);

foreign key:

建立在两表或多张表中的关联关系,以保证数据完整性

注意:1.子表参照的值必须在主表被参照字段的值的范围内

2.如果主表中有值被参照,那么主表中的相应记录不能被删除

3.子表的外键参照的列只能是主表的主键列或唯一约束的列

create table student(

sid int primary key auto_increment,

sname varchar(20),

scid int,

--foreign key(scid)references class(cid)engine=innodb;

drop tablr student;

drop table class;

语法1: FOREIGN KEY (外键字段) REFERENCES 主表(主键字段);

语法2: CONSTRAINT 外键名 FOREIGN KEY (外键字段) REFERENCES 主表(主键字段);

(外键名:fk_字段名)

---------------------------

ENGINE : 引擎

mysql所特有一种数据存储机制

Check(MySQL数据库中,没有作用)

create table student(

sid int primary key,

sname varchar(20) not null,

ssex char(1),

sage int check(sage<19)

);

建表后操作表表结构:

查看表结构:

desc 表名:

mysql> desc student;

修改类型:

alter table 表名 modify 列名 目标类型;

mysql> alter table student modify sid varchar(10);

增加列:

alter table 表名 add 列名 类型;

mysql> alter table student add sage int;

删除列:

alter table 表名 drop 列名;

mysql> alter table student drop sname;

修改列名:

alter TABLE 表名 CHANGE 旧列名 新列名 类型;

mysql> alter table student change aaa bbb int;

修改表名:

语法1:

alter table 表名 rename 新表名;

语法2:

rename table 旧表名 to 新表名;

mysql> alter table student rename stu;

mysql> rename table student to stu;

2、MySQL图形化工具使用

使用Navicat连接我们的数据库:

点击连接

主机名或IP地址:就是数据库安装电脑的电脑名或IP地址  localhost、127.0.0.1

端口:就是MySQL安装时候的默认端口  3306

用户名:MySql安装的默认用户名 root

密码:MySQL安装时你指定的密码: root

连接名:只是一个名字而已,作用是让我们知道是什么业务的数据库

完成以上几个信息的配置,点击确定:

点击J18这个数据库连接

展示 全部的数据库;

几个数据库都是可以点击的,点击之后进入对应的数据库;

暂时我们只 注意 表、查询、备份

点击表之后,把该数据库下面的所有表全部展示出来:

点击查询:

新建查询

该操作面板就可以  写  insert  delete  update create select 等等语句;

点击备份:

该页面主要是对数据库的备份、恢复操作。

3、数据操作语句

Create table stu(

Sid int primary key,

Sname varchar(20) not null,

Sage int ,

Ssex char(2)

);

-- ----------------------------

-- Records of stu

-- ----------------------------

INSERT INTO `stu` VALUES (‘1‘, ‘李林‘, ‘23‘, ‘男‘);

INSERT INTO `stu` VALUES (‘2‘, ‘李林‘, ‘23‘, ‘男‘);

INSERT INTO `stu` VALUES (‘3‘, ‘李林‘, ‘23‘, ‘男‘);

INSERT INTO `stu` VALUES (‘4‘, ‘李林‘, ‘23‘, ‘男‘);

INSERT INTO `stu` VALUES (‘5‘, ‘李林‘, ‘23‘, ‘男‘);

INSERT INTO `stu` VALUES (‘6‘, ‘李林‘, ‘23‘, ‘女‘);

INSERT INTO `stu` VALUES (‘7‘, ‘李林‘, ‘23‘, ‘女‘);

INSERT INTO `stu` VALUES (‘8‘, ‘李林‘, ‘23‘, ‘女‘);

INSERT INTO `stu` VALUES (‘9‘, ‘李林‘, ‘23‘, ‘女‘);

新增

Insert into 表名(列名1, 列名2, 列名3...)values(列名1值,列名2值, 列名3值.)

两种新增数据的方式

Insert into stu(sid,sname,sage)values(1,’李林’,22);

Insert into stu values(1,’李林’,22);

删除

Delete from 表名

Delete from stu;

修改

Update 表名 set 列名1=修改的值,列名2=修改的值;

update stu SET sage=23,sname=‘李琳‘;

4、数据查询语句

SELECT查询内容

FROM 表名

WHERE条件

GROUP BY

HAVING

ORDER BY

查询全部数据

Select * from 表名;

Select * from stu;

根据插件查询指定的数据

Select * from 表名 where 列名1=值 and 列名2=至...

Select * from stu where sid=9 and ssex=‘女‘;

查询数据,返回指定的列

Select 列名1,列名2 from 表名;

Select sid,sname from stu;

给指定返回列取别名(小名)

两种方式:

Select 列名 别名,列名2 别名2... from 表名;

Select 列名 as 别名,列名2 as 别名2... from 表名;

Select sid 学号,sname 姓名,ssex 性别 from stu;

Select sid as  学号,sname as 姓名,ssex as 性别 from stu;

在条件中使用比较运算符

SELECT * FROM 表名 where 字段 > < >= <= !=或<>

select * from j18 where xsnianling !=18

多条件的查询:

AND OR NOT

select * from j18 where xsnianling <=21 and xsxingbie=‘女‘

select * from j18 where xsnianling <21 or xsxingbie=‘女‘

select * from j18 where xsnianling not in(18,21,25)

对空值的查询:is null  对应列是否null查询

select * from j18 where xsxueli is not null

select * from j18 where xsxueli is null

BETWEEN A AND B  在A和B之间,包含AB的值

select * from j18 where xsnianling BETWEEN 18 and 21

IN

select * from j18 where xsnianling in(18,21,25)

模糊查询 LIKE

%:指代不明确值的位置或长度

_:指代明确值的位置或已知字符串长度

select * from j18 where xsxingming like ‘_灵%‘

查询中使用算术表达式:+ - * /

select xsxuehao+xsnianling from j18 where xsxingming like ‘_灵%‘

处理重复值:DISTINCT   排除重复展示,只展示一次

select DISTINCT xsxingbie from j18;

查询返回限定行数:LIMIT

Limit 10 取查询数据的前10位

Limit 10,10  从查询数据的第11位开始,向后取10位数据展示,不满足10位也不会报错

通过查询复制表

create table stu1  select * from stu;

--只复制结构

create table stu2  select * from stu where 1=2;

分组 group by

select ssex,COUNT(*) from stu GROUP BY ssex

分组使用的时候,,group by 字段,一定要在 select  后面出现,如果使用了group by  select 后面就不要出现 *

排序 order by 字段名  :字段名就是我们需要排序的字段

order by  xsnianling  升序  默认

order by  xsnianling desc  降序

常用函数

得到需要查询字符的ASCII码

SELECT ASCII(‘中‘);

SELECT CHAR(97);

根据字符集查询得到字符串的长度

SELECT CHAR_LENGTH("中国");

SELECT CHAR_LENGTH(sname) FROM student;

--utf8编码下,一个中文字占3个字符长度

SELECT LENGTH("中");

--拼接字符串

SELECT CONCAT(‘My‘, ‘S‘, ‘QL‘);

SELECT CONCAT(sname,sage) FROM student;

SELECT sname,sage FROM student;

--大写转小写

SELECT LOWER("ABC");

--小写转大写

SELECT UPPER("abc");

--查询学生表中所有学生姓名的最后一个字

SELECT RIGHT(sname,1) FROM student;

--查询学生表中所有学生姓什么

SELECT LEFT(sname,1) from student;

SELECT FLOOR(4.9);

----------------------------

--查询得到本地时间

SELECT NOW();

CREATE TABLE teset(

tid int PRIMARY KEY auto_increment,

ttime datetime

);

SELECT * FROM teset;

INSERT INTO teset(ttime) values (NOW());

SELECT CURDATE(),CURTIME();

SELECT CURTIME();

聚合函数:

COUNT  统计数量:select count(xsnianling) from j18

SUM    求和:select sum(xsnianling) from j18

MAX    求最大值:select max(xsnianling) from j18

MIN    求最小值:select min(xsnianling) from j18

AVG    平均数:select avg(xsnianling) from j18

时间: 2024-11-07 14:53:55

MySQL补充的相关文章

数据库之MySQL补充

union 之前说过一个join连表操作,join表示左右连表,还有一个连表union,表示上下连表.PS:两张表的字段必须是类似的字段,且字段个数要相同. #自动处理重合(如果有完全一样的数据会自动合并成一条数据) select nickname from A union select name from B #不处理重合(即使有完全一样的数据也不会进行合并) select nickname from A union all select name from B 视图 视图是一个虚拟表(非真实

Python Day48 mysql补充

一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用.使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用. 1.创建视图 create vi

&lt;数据库&gt;MySQL补充

show create table 表名 \G;(查看创建的属性) alter table 表名 auto_increment=xx;(修改自增起始值) set session auto_increment_offset=xx;(修改步长) 索引的目的:加速查找 约束: 主键 外键 唯一索引:unique 名字 (列名) ----不允许重复(可以为空) 联合唯一:unique 名字 (列名1,列名2)---不允许一起重复 sql语句补充 select * from 表名; select 列名 a

03 mysql补充 (进阶)

增加字段 alter table tb1 add age int first; 增加到第一 alter table tb1 add sex int after id; # 改变位置,id是字段名字 alter table tb1 modify age varchar(10); # 修改类型 alter table tb1 change age sex varchar(10); # 更改字段,类型不变 alter table tb1 tb1 rename ta2; # 更改表名字 alter ta

MySQL多实例安装

    MySQL数据库(一) 作者:Jack 归档:学习笔记 2017/6/19 目  录 MySQl数据库(一)... 3 第1章概述:... 4 1.1 MySQL介绍:... 4 1.2 MariaDB数据库的诞生背景介绍... 4 1.3 MySQL多实例介绍... 5 1.3.1 什么是MySQL多实例... 5 1.3.2 MySQL多实例的作用与问题... 6 1.4 MySQL多实例的生产应用场景... 7 第2章关系型数据库与非关系型数据库... 8 2.1 关系型数据库..

【转】哦,mysql 的其它发行版本Percona, mariadb

原文:http://geek.csdn.net/news/detail/130146 2016年11月25日,沃趣科技"智慧应用 数据先行"2016产品发布会暨新三板挂牌庆祝会在杭州华美达酒店隆重举行,近百位知名企业专家.合作伙伴及媒体人共同出席本次会议,分享数据库相关领域的创新成果和成功经验,一同探讨数据库云化的摸索探寻之路. 借此契机,CSDN记者有幸邀请到沃趣科技联合创始人.高级数据库专家李春,围绕一些大家关心的话题进行采访.纵观MySQL的前世今生,漫谈MySQL十年长路,剖析

MySQL 常用基础命令

一.启动与关闭 1.1 Linux下启动mysql 的命令: a. rpm包安装:service mysqld start b. 源码包安装:/usr/local/mysql/bin/mysqld_safe --user=mysql & 1.2 Linux下重启mysql 的命令: a. rpm包安装:service mysqld restart b. 源码包安装: 先关闭mysql /usr/local/mysql/bin/mysqladmin -uroot -p shutdown 再启动my

MySQL数据库多种安装方法及企业级安装实践

本文来自老男孩老师第三本书籍著作<老男孩的MySQL私房菜>第三章内容分享! 3.1 MySQL数据库的安装方法及选择 在当今的互联网企业里,MySQL数据库大多运行在Linux系列操作系统上,当然,你也可以运行在Windows/Unix等商业操作系统上,本书主要以国内互联网公司应用最多的数据库服务操作系统--CentOS6最新版(6.8)x86_64 Linux系统为例进行讲解,使用其他系统的读者同样可以从本书受益! 即使是在CentOS 6 x86_64 Linux系统环境下,若应用场景不

MySQL(四))

索引 索引,是数据库中专门用于帮助用户快速查询数据的一种数据结构.类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置,然后直接获取即可. 1 2 3 4 5 6 7                     30         10                        40    5         15            35             66 1   6     11    19      21      39     55     100 MySQ