MySQL学习(1)

SQL语句有以下几点需要注意的:

1.SQL语句可以单行,或者多行书写,重要的是以分号;结尾
2.MySQL是不区分大小写的,一般关键字大写,自己定义的一些表名之类的用小写
3.注释方法有三种:
(1)单行注释:-- 特别注意:在--后面要先加上一个空格,再输入注释的语句
(2)单行注释:#这种注释方法在#的后面就不用加空格,直接输入注释的语句
(3)多行注释:/* 注释 */

对于SQL的语句主要有四种分类:

1.DDL:数据定义语言

用来定义数据库对象:数据库,表,列等
关键字:

create,drop,alter

2.DML:数据操作语言

对数据库中的表进行 增删改
关键字:

insert,delete,update

3.DQL:数据查询语言

查询数据库中表的记录
关键字:

select,where

4.DCL:数据控制语言

定义数据库访问权限和安全级别、创建用户
关键字:

GRANT,REVOKE

DDL

1.操作数据库
(1)create 创建
创建数据库db1,默认字符集是utf-8

create database db1;

判断是否存在同名数据库(和db1同名):如果存在,不创建;不存在则创建。

create database if not exists db1;

设定数据库的字符集为gbk

create database db3 character set gbk;

(2)retrieve 查询
查看所有数据库的名称:

show databases;

查看mysql数据库的字符集(mysql数据库的创建语句):

show create database mysql;

(3)update 修改
修改数据库的字符集

alter database 数据库名称 character set 字符集名称;

(4)delete 删除
删除数据库

drop database 数据库名称;

判断数据库是否存在,存在则删除。

drop database if exists 数据库名称;

(5)使用数据库
查询当前正在使用的数据库

select database();

使用数据库

use 数据库名称;

2.操作表
(1)create 创建

create table 表名(
列名1 数据类型1,
列名2 数据类型2,
...
列名n 数据类型n
);

*注意最后一列不要加逗号

数据库的数据类型

图片说明
例子如下:
图片说明

create table student(
id int,
name varchar(32),
age int,
score double(4,1),
birthday date,
insert_time timestamp
);

(2)retrieve 查询
查询某个数据库中所有表的名称

show tables;

查询表结构

desc 表名;

(3)update 修改
修改表名

alter table 表名 rename to 新的表名;

修改表的字符集

show create table student;
alter table student character set utf8;

添加一列

alter table 表名 add 列名 数据类型;

修改列名称 类型

alter table stu(表名) change gender(列名) sex(新列名) varchar(20)(新数据类型);
alter table stu modify sex varchar(10)

删除列

alter table stu(表名) drop sex(列名)

(4)delete 删除

drop table if exists 表名;

(5)表的复制

create table stu(表名) like students(基表);

DML

1.添加数据
insert into 表名(列名)values(对应数值)

insert into stu(id,name,age) values (1,'张无忌',18);

*注意:列名和值要一一对应
列名可省略
除了数字类型都要加引号
2.删除数据
delete from 表名 where 条件;

delete from stu where id=1;

删除表,然后在创建一个一摸一样的空表

truncate table 表名;

3.修改数据
updata 表名 set 列名1=值1,...where 条件

updata stu set age=117 where id=3;

如果不加条件,修改所有内容

DQL

select * from 表名

select 字段列表 from 表名列 表 where 条件列表 group by 分组字段 having 分组之后的条件 oreder by 排序 limit 分页限定
2.基础查询
去除重复的结果集

select distinct address from student;

计算math和english之和
ifnull为空则为0
as 总分 起别名

select name,math,english,math+ifnull(english,0) as 总分 from student;

3.条件查询
1.where语句后跟条件
2.运算符

,<,<=,>=,=,<>
between and
in(集合)
like
is null
and 且
or 或
not 非

select * from student where age>20;
select * from student where age<20;
select * from student where age>=20;
select * from student where age<=20;
select * from student where age=20;

select * from student where age!=20;
select * from student where age<>20;

select * from student where age>20 and age<=30;
select * from student where age between 20 and 30;

select * from student age=22 or age =25;
select * from student age in(22,25);

select * from student where english is null;

模糊查询like
1.占位符号
_:单个任意字符
%:多个任意字符

select * from student where name like '马%';
select * from student where name like '_化%';
select * from student where name like '___';(查询姓名三个字的)
select * from student where name like '%德%';
全部评论

相关推荐

06-27 12:54
已编辑
门头沟学院 Java
累了,讲讲我的大学经历吧,目前在家待业。我是一个二本院校软件工程专业。最开始选专业是觉得计算机感兴趣,所以选择了他。本人学习计算机是从大二暑假结束开始的,也就是大三开始。当时每天学习,我个人认为Java以及是我生活的一部分了,就这样持续学习了一年半,来到了大四上学期末,大概是在12月中旬,我终于找的到了一家上海中厂的实习,但我发现实习生的工作很枯燥,公司分配的活也不多,大多时间也是自己在自学。就这样我秋招末才找到实习。时间来到了3月中旬,公司说我可以转正,但是转正工资只有7000,不过很稳定,不加班,双休,因为要回学校参加答辩了,同时当时也是心高气傲,认为可以找到更好的,所以放弃了转正机会,回学校准备论文。准备论文期间就也没有投递简历。然后时间来到了5月中旬,这时春招基本也结束了,然后我开始投递简历,期间只是约到了几家下场面试。工资也只有6-7k,到现在我不知道该怎么办了。已经没有当初学习的心劲了,好累呀,但是又不知道该干什么去。在家就是打游戏,boss简历投一投。每天日重一次。26秋招都说是针对26届的人,25怎么办。我好绝望。要不要参加考公、考研、央国企这些的。有没有大佬可以帮帮我。为什么感觉别人找工作都是顺其自然的事情,我感觉自己每一步都在艰难追赶。八股文背了又忘背了又忘,我每次都花很长时间去理解他,可是现在感觉八股、项目都忘完了。真的已经没有力气再去学习了。图片是我的简历,有没有大哥可以指正一下,或者说我应该走哪条路,有点不想在找工作了。
码客明:太累了就休息一下兄弟,人生不会完蛋的
如果实习可以转正,你会不...
点赞 评论 收藏
分享
06-26 15:33
青岛工学院 Java
积极的秋田犬要冲国企:他现在邀请我明天面试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务