mysql 总结

1 mysql常用术语

1) 数据库  database (***)
2) 表  table  (***)
3) 行(row)和列(column)
4) 记录 (record) 一个数据行  就是一条记录
5)字段(field) 每个列 就是一个字段

备注: 结构化查询语言SQL(Structured query language),
      操作关系数据库的通用语言,用于执行数据的检索和其他操作。

数据库 =》 表 =》 记录(行)

2 mysql安装

1) 下载 phpStudy 集成工具
2) 下一步 安装 点击启动 (绿色代表成功)

启动会同时启动两个东西:
    apache:  这是集成的一个服务器  端口是 80
    mysql:   这是数据库  端口是 3306

3 连接数据库

语法: mysql -h主机名  -u用户名 -p密码
mysql –hlocalhost –uroot –proot

测试是否连接成功:
    show databases;

说明: 需要配置环境变量, 把以下路径 放入环境变量
    C:\phpStudy\PHPTutorial\MySQL\bin

4 数据库的操作 (**)

1) 查看数据库列表 
    show databases;

2) 创建数据库
    create database 数据库的名字;
    例子: create database web;

3) 切换(使用数据库)
    use 数据库名称;
    例子: use web;

4) 删除数据库
    drop database 数据库的名字;
    例子: drop database web;

5) 修改数据库的选项(一般修改编码)
    alter database 数据库的名字  修改内容
    例子: alter database web charset=gbk;

补充: 查看创建数据库的一些信息
6) show create database 数据库的名字
    例子: show create database web;

5. 表的基本操作(*****)

1) 创建表
    语法:
        create table 表名 (
            字段名称 数据类型和长度 属性修饰,
            字段名2 字段类型2 属性修饰2
        )[表选项]
    例子:
        create table student (
            id int primary key auto_increment,
            name varchar(50),
            age int,
            sex varchar(10)
        );

        create table teacher (
            name varchar(50),
            age int,
            sex varchar(10)
        );


2) 查看当前数据库有哪些表
    show tables;

3) 查看表的结构
    desc 表的名字;
    例子: desc student;

4) 删除表
    drop table [if exists] 表名
    例子: drop table if exists teacher;

补充:
    5)修改表:
        alter table 表名 选项=新值
        例子: alter table student charset=utf8;

    6)查看建表的一些信息:
        show create table 表的名字
        例子: show create table student;

6 记录的基本操作 (******)

1) 增加记录(插入数据) ------ 增
    语法: insert into 表名 (字段列表) values (值列表)
    例子: insert into teacher(name, age, sex) values('李寻欢', 35, '男');
           insert into teacher(name, age, sex) values('xunhuanLi', 35, 'man');

           insert into student(name, age, sex) values('小张', 20, '男');
           insert into student(name, age, sex) values('小李', 21, '女');
           insert into student(name, age, sex) values('小王', 22, '男');

    补充:  
          insert into 表明 values (值列表)  // 参数一定要按照顺序 
          例子:  insert into teacher values('老王', 35, '男');     

                 insert into student values(default,'小强', 18, '男');   
          
           注意: 如果使用这种 省略字段列表的方式 需要使用 default 或 null 占位

MySQL修改字段类型的命令是:

mysql> alter table 表名 modify column 字段名 类型;

假设在MySQL中有一个表为:address,有一个字段为city 初始情况下为varchar(30),那么修改类型为char可以在MySQL控制台输入:

alter table address modify column city char(30);

注意修改类型应该谨慎,因为类型之间数据需要转换,可能会导致数据出错或者丢失

如果要将varchar(30)长度进行扩展可以使用:

alter table address modify column city varchar(60);

同样类型的数据字段增加长度是没问题的,也是经常使用的,但是减小长度可能会导致数据丢失;8

    dos控制台中文编码问题 (*****)
        在插入数据之前 set names gbk;
    

2) 查询数据 (*******) ------- 查
    a) 基本查询:
        语法: select 字段列表 from 表的名字;
        例子: select * from student;   // 查询表里面的所有字段
               select name from student;  // 查询表里面的name字段  
               select age from student;  // 查询表里面的age字段  

                补充: 查询出来 取别名
                select 字段名 as 别名 from 表名;
                例子: select name as n from student;


    b) 带条件查询
        语法:  select 字段列表 from 表的名字 where 条件
        例子: select * from student where sex = '女';
               select * from student where sex <> '女';
               select * from student where age > 18;
               select * from student where age < 21;
               select * from student where age >= 18;
               select * from student where age <= 21;
               select * from student where age BETWEEN 20 AND 22;  // 在什么之间

               select * from student where age > 18 and sex='女'; // 并且
               select * from student where age > 18 or id=6;   // 或者

                select * from student where name 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 '%李%';  // 包含这个字符的
                select * from student where name LIKE '%王%';
3) 删除数据 (****)------  删
    语法: delete from 表名 [where 条件]
    例子: delete from student where sex = '女';  // 删除所有性别为女的数据
    例子: delete from student where id = '8';  // 删除id = 8数据

    备注: 如果不写条件 代表删除所有数据
        例如: delete from student;  // 删除 student 表 所有数据

4) 修改数据 (****) -----改
    语法: update 表名 set 字段=值, 字段=值 [where 条件表达式];
    例子: update student set age = 38, sex = '女';
          update student set age = 8, sex = '男' where id = 1;

7 数据类型

商品表 (关键字 可以使用反引号)
create table `goods` (
    id int primary key auto_increment,
    `sort` tinyint unsigned,
    name varchar(100),
    price float(10, 2),
    `desc` text,
    ctime TIMESTAMP DEFAULT CURRENT_TIMESTAMP 
);


 insert into goods(name, price, `desc`) values('ipone18', 9999.999, '这是一个手机1');
 insert into goods(name, price, `desc`) values('ipone19', 8888.999, '这是一个手机2');
 insert into goods(name, price, `desc`) values('ipone20', 7777.999, '这是一个手机3');

补充: 查询结果排序

 select * from goods order by ctime asc;  // 升序 默认
 select * from goods order by ctime desc; // 降序排列

 select * from goods where 1 order by ctime desc;  // 条件可以拼接 order by 只能在最后

你可能感兴趣的:(mysql 总结)