MySQL基础

alter table 表名 rename to 新的表名; -- eg:alter table student rename to stu;

MySQY服务启动

1.win+R输入cmd进入命令行界面,输入命令services.msc 打开服务的窗口

2.使用管理员打开cmd

        *net start mysql:启动mysql服务

        *net stop mysql:关闭mysql服务

MySQL登录

1.mysql -uroot -proot

*(mysql -uroot -p 回车 输入密码这时候密码是密文显示的)

这个登录的是本地的MySQL用户

2.访问别人的MySQL

mysql   -h127.0.0.1(-hip) -uroot -p密码

        *-h127.0.0.1(l连接谁敲谁的ip地址)

        *-uroot、-p密码(l链接的用户名和密码)

3.mysql   --host=ip  --user=root   --password=链接目标的密码

MySQl退出

1.命令行输入exit、quit

MySQL目录结构

1..MySQL安装目录

        配置文件 my.ini

2.MySQL数据目录

默认在C盘目录,点击显示隐藏文件

        *C:\ProgramData\MySQL\MySQL Server 5.5\data

        *几个概念

                *数据库:文件夹

                *表:文件       

                *数据:数据

        MySQL数据库表与数据的关系

SQL

1.什么是SQL?

结构化查询语言,其实就是定义了操作所有关系型数据库的规则。每一数据库都可以操作的方式存在不一样的地方,成为“方言”。

2.SQL的通用语法

        1..SQL可以单行或多行书写,以分结尾 

                eg:show databases; 

    

        2.用空格和分号来增强语句的可读性

        3.MySQL数据库的SQL语句不区分大小写,关键字建议使用大写

        4.三种注释

                * 单行注释:--  注释内容(--后面一定要加空格) 或 # 注释内容(mysql特有的书写方式)

                * 多行注释: /*注释*/

3.SQL分类

1.DDL 数据定义语言-->操作数据库和、表(creat,drop,alert等)

2.DML 数据操作语言-->增删改表中数据(insert,delete,update等)

3.DQL 数据查询-->查询表中数据(关键词:select ,where等)

4.DC L 数据控制语言(了解)(关键字:GRANT,RECOKE等)-->授权的

 DDL(操作数据库和数据库中的表)

        1.操作数据库:CRUD

                1.C(creat):创建

                        *创建数据库:

create database 数据库名称;

                    *创建数据库,判断不存在再创建:

create database if not exists 数据库名; -- (创建之前查询是否存在数据库,存在创建另一个数据库)

                    *创建数据库并指定字符集:

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

                    *练习: 创建date4数据库,判断是否存在并制定字符集为gbk :      

create database if not exists db4 character set gbk;

                2.R(Retrieve):查询

                        *查询数据库的名称:

 show datebases ;

                        *查看某个数据库的字符集:

show create datebase mysql; -- 查询某个数据库的创建

                3.U(Update):修改

                *修改数据库的字符集:

alter database 数据库名称 character set 字符集名称;
-- eg:alter database db3 character set utf8;

                4.D(Delete):删除 

                *删除数据库

drop database 数据库名称;-- eg:drop database demo1;

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

drop database if exists 数据库名称; -- eg:drop database if exists demo01;

                5.使用数据库

                *查询当前正在使用的数据库名称

select database();

                *使用数据库库

use 数据库名称;-- eg:use demo01;

        2.操作表

                1.C(Create):创建表

                    1.语法

create table 表名(
    列名1 数据类型1,
    列名2 数据类型2,
    列名3 数据类型3,
        ...
    列名n 数据类型n -- 注意最后一列,不需要加逗号(,)
);

                数据库类型:

                        1.int :整数类型

age int,

                        2.double:小数类型

score double(5,2), -- 5位的小数,小数点后保存两位

                        3.date:日期,只包含年月日,yyy-MM-dd

                        4.datetime:日期,包含年月日时分秒 yyyy-MM-dd HH:mm:ss

                        5.timestamp:时间错类型,包含年月日时分秒  yyyy-MM-dd HH:mm:ss

                                *如果将来不给这个自段赋值,或赋值为null,则默认在使用当前的系统时间,来自动赋值

                        6.varchar:字符串

name varchar(20), -- 姓名最大20个字符 eg:zhangsan varcher(20),(zhangsan 8个字符)

        如下为一张学生信息表:

创建表:

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

 2.R(Retrieve):查询

                *查询数据库中所有表的名称:

show tables;

                *查询表结构

desc 表名;-- eg:desc student;

3.U(Update):修改 

                1.修改表名

alter table 表名 rename to 新的表名; -- eg:alter table student rename to stu;

                2.  修改表的字符集

alter table 表名 character set 字符集名称; -- rg:alter table stu character set utf8;

                3.添加一列

alter table 表名 add 列名 数据类型; -- eg:alter table stu add sex varchar(10);

                4.修改列名称 类型

alter table 表名 change 列名 新列名 新数据类型;-- alter table stu change sex gender varchar(20);既改名字也改类型
alter table 表名 modify 列名 新数据类型; -- alter table stu modify sex varchar(10);(只改变数据类型)

                5.删除列

alter table 表名 drop 列名; -- alter table stu gender;

4.D(Delete):删除

   *删除表

drop table 表名;

*判断表存在删除

drop table if exists 表名;-- eg:drop table if exists stu;

客户端图形化工具:SQLYog

DML:增删改表中数据

1.添加数据

        语法:

insert into 表名(列名1,列名2,列名3,...列名n) values(值1,值2,...值n); -- eg:INSERT INTO stu(id,NAME,age) VALUES(1,'张无忌',18);

        注意:

               1. 列名和值要一一对应。

               2.如果表名后,不定义列名,则默认给所有列添加值

insert into 表名 values(值1,值2,...值n); -- eg:insert into stu values(2,'赵敏',17,99.9,null,null);

               3.除了数字类型,其他类型需要使用引号引起来('  ')(单双都可以)

2.删除数据   

语法:

delete from 表名 [where 条件] ; -- eg:DELETE FROM stu WHERE id=1;

    注意  :1.如果不加条件删除表中所有记录

                 2.如果要删除所有记录

                        1.delete from 表名; -- 不推荐使用。有多少记录就会执行多少次的删除操作

                        2.truncate table 表名; -- 先删除表,效率更高   然后再创建一张一张的表。

3.修改数据

语法:

update 表名 set 列名1 = 值1, 列名2 = 值2,...[where 条件]; -- eg:update stu set age = 117 where id = 2;

注意:

        1.如果不加任何条件,则会将表中的所有记录全部修改。

                eg:update stu set age = 20; -- 将表中所有的age全部改成20

DQL:查询表中的记录

1.语法

       

select
    字段列表
from
    表名列表
where
    条件列表
group by
    分组字段
having
    分组之后的条件
order by
    排序
limit
    分页限定 

 2.基础查询

创建学生表

CREATE TABLE student(
id INT,-- 编号
NAME VARCHAR(20),-- 姓名
age INT,-- 年龄
sex VARCHAR(5),-- 性别
address VARCHAR(100),-- 地址
math INT,-- 数学
english INT-- 英语
);
INSERT INTO student(id,NAME,age,sex,address,math,english) VALUES
(1,'马云',55,'男','杭州',33,99),
(2,'马化腾',45,'男','深圳',98,65),
(3,'马景涛',55,'男','香港',56,77),
(4,'柳岩',20,'女','湖南',76,65),
(5,'刘青',20,'男','湖南',86,NULL),
(6,'刘德华',57,'男','香港',99,99),
(7,'马德',22,'女','香港',99,99),
(8,'德玛西亚',18,'男','南京',56,65);

 

        1.多个字段的查询

                select 字段名1,字段名2,...from 表名;

注意:如果查询所有字段,可以直接使用*来代替字段列表

-- 查询姓名 和 年龄
SELECT 
	NAME,-- 姓名
	age -- 年龄
FROM 
	student;-- 学生表

-- 查询学生的地址
SELECT address FROM student;

2.去除重复

       * distinct

-- 去除重复的结果集
SELECT DISTINCT address FROM student;

 

 

-- 查询XX来自哪里
SELECT DISTINCT NAME,address FROM student;

3.计算列

        一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)

        ifnull(表达式1,表达式2);

                *表达式1:哪个字段需要判断是否为null

                *如果该字段为null后的替代值。

-- 计算 math和english 分数之和
SELECT NAME ,math,english,math + english FROM student;

-- 如果有null 参与的运算,计算结果都为null
select name,math,english,math + ifnull(english,0) from student;

 

4.起别名

as: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 或 !

-- 查询年龄大于20岁
SELECT * FROM student WHERE age >20;
-- 查询年龄大于等于20岁的
SELECT * FROM student WHERE age >=20;
-- 查询年龄等于20岁
SELECT * FROM student WHERE age =20;
-- 查询年龄不等于20岁
SELECT * FROM student WHERE age !=20;
SELECT * FROM student WHERE age <> 20;
-- 查询年龄大于等于20 小于等于30
SELECT * FROM student WHERE age >=20&& age<=30;
SELECT * FROM student WHERE age >=20 AND age<=30;
SELECT * FROM student WHERE age BETWEEN 20 AND 30;-- 包含20也包含30
-- 查询年龄22岁,19岁,25岁的信息
SELECT * FROM student WHERE age = 22 OR age = 18 OR age = 25;
SELECT *FROM student WHERE age IN (22,18,25);
-- 查询英语成绩为null的
SELECT * FROM student WHERE english = NULL;-- 这种写法是错误的 null值不能使用 =(!=)判断
SELECT * FROM student WHERE english IS NULL;
-- 查询英语成绩不为null
SELECT * FROM student WHERE english IS NOT NULL;
-- 查询班级里姓马的同学有哪些? like
SELECT * FROM student WHERE NAME LIKE '马%';
-- 查询第二个字是化的人
SELECT * FROM student WHERE NAME LIKE '_化%';
-- 查询姓名是三个字的人
SELECT * FROM student WHERE NAME LIKE '___';
-- 查询姓名中包含马德人
SELECT * FROM student WHERE NAME LIKE '%德%';

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值