您的位置:首页 > 数据库 > MySQL

学习笔记01(MySQL)

2017-11-23 21:11 309 查看
开启 MySQL服务

net start mysql;

登录

mysql -u root -p1122

数据定义语言DDL 

数据操作语言DML 

数据查询语言DQL

库操作

新建数据库带编码方式

create database web08 character utf-8;
 

显示已存在的数据库

show databases;

查看编码

show create database web08;  

删除数据库

drop database web08-08;

show databases;

使用特定数据库
use web08;

表操作

查看当前使用的表
select database();

新建表

create table user(

   uid int(10) primary key auto_increment,

  uname varchar(30),

   uage   varchar(6)

);

主键约束:primary key 要求被修饰的字段:唯一和非空

 唯一约束:unique  要求被修饰的字段:唯一

非空约束:not null  要求被修饰的字段:非空

查看表

show tables;

查看表结构

Desc user;

删除表

drop table user;

修改表

1.添加一列alter table 表名 add 字段名 类型(长度)[约束]

 alter table user add uage varchar(10) not null;

2,修改列类型(长度,约束)

alter table 表名 nodify  要修改的字段名 类型(长度) [约束]

alter table user nodify uage varchar(4) null;

3.修改列名

Alter table 表名 change 旧列名 新列名  类型(长度) [约束]

alter table user change uage age varchar(4) not null;

4.删除列

alter table 表名 drop 列名;

alter table user drop uage;

5.修改表名

rename table 表名 to 新表名;

6.修改表的字符集

  先查看 show create table 表名

alter table 表名 character set 编码

记录操作

插入记录 insert

(字符型或日期要加引号' ')

 insert into  表名(列名1,列名2,列名3) values(值1,值2,值3); 

insert into user(uid,uname,uage) values(null,'张三','21');

中文乱码处理

1.修改MySQL安装目录下的my.ini文件的下面行:default-character-set=utf8;

2.set names gbk;

更改记录

update 表名 set 字段名=值,字段名=值,字段名=值;

update user set uname='李四';(将该列的所有记录都更改)

update user set uname='李四' where uid=1;

删除记录

delete from 表名 where 条件;

delete from user where uid=1;

(删除后,uid不会重置) 

delete与truncate的区别?

delete是一条一条删除,可以将数据找回

将该列的所有记录都更改

   操作如下:start  transaction;

                    delete from user;

                    select * from user;

                    rollback;

                    select * from user;

truncate是摧毁表,然后新建一个一模一样的表,但数据不能恢复。 

  操作如下:

              start transaction;

             truncate table user;

             select * from user;

              rollback;

              select * from user;

查询操作

   select  [distinct]   *|列名  from  表名  where 条件;

  select * from user;

select  uid  from  user;

select   *  from user as   p; (使用表别名)

select   uname   as   name   from  user ;(使用列别名)

select distinct(uname)  from user;(去除重复记录)

select    uage+10 from user;(所有年龄加10)

     条件查询

             where后的条件写法:

            >,<,=,>=,<=,<>

           like使用占位符_和%(_代表一个字符,%代表任一个字符)

         select * from user where uname like '%三%';

           in在某个范围中获取值

          select * from user where uid in(3,6,9);

AND   OR NOT

 where   not(uid>5)

排序

  select   *   from   user   order   by  uage desc;(降序)

  select   *   from   user   order   by  uage asc;(升序)

select * from user uname='%三%'  order by uage desc;

聚合函数

   sum()

select sum(uage) from user;

avg()

select    avg(uage)    from user;    

 count()

select    count(*)     from user;

分组

1,添加alter table user add usex varchar(4);

2.初始化数据   update user set usex='男';

                          update user set usex='女'  where  uid in (3,6,7); 

例:根据usex字段分组,分组后统计每个的个数。

 select   usex,count(*)    from   user   group   by usex;

例:根据usex字段分组,分组统计每组的平均年龄,并且平均年龄大于25。

select avg(uage)  from  user group   by  usex  having avg(uage)>25;

查询总结

  select--from--where--group by-- having(分组后带有条件只能使用having)-- order by(最后边)

                       

   

 

  

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: