天天看点

MySQL基础知识学习总结

简介

MySQL是一种关系数据库管理系统,现在一般中小型网站的开发都选择MySQL作为网站数据库。

操作

1、启动MySQL服务

        net start mysql

2、连接MySQL

        mysql -h127.0.0.1 -uroot -p

3、退出MySQL

        exit

        Quit

4、关闭MySQL服务

        net stop mysql

MySQL列类型

1、数值类型

        SMALLINT: 2个字节

        INT: 4个字节      // age int(10)

        NTEGER:INT的同义词

        BIGINT : 8个字节

        FLOAT : 4个字节

        DOUBLE : 8个字节   //score float(10,2)

2、字符串(字符)类型

        CHAR:固定长度字符串  sex char(2)

        VARCHAR:可变长度字符串 name varchar(20)   备注:VARCHAR使用起来较为灵活,CHAR处理速度更快

        TEXT:非二进制大对象(字符)

        BLOB:二进制大对象(非字符)

3、日期/时间类型

        DATE: YYYY-MM-DD

        DATETIME: YYYY-MM-DD HH:MM:SS

        TIMESTAMP: YYYY-MM-DD HH:MM:SS

        TIME:HH:MM:SS

        YEAR:YYYY

SQL语句语法

    SQL语言包含4个部分:

        数据定义语言(如create,drop,alter等语句)

        数据查询语言(select语句)

        数据操纵语言(insert,delete,update语句)

        数据控制语言(如grant,revoke,commit,rollback等语句)

        数据操纵语言针对表中的数据,而数据定义语言针对数据库或表

1、数据定义语言

create database school;  /*创建数据库*/
show databases;          /*显示所有数据库select database()*/
use school;                     /*指定默认数据库*/

create table student(       /*创建表*/
id int(10) primary key  auto_increment,  /*主键,自增*/
name varchar(8),
sex char(1),
score float(6,2)
);

show tables;                     /*显示当前库中表清单*/
/* 显示指定表结构show columns from student;*/
describe student; 
show create table student; /*显示建表sql语句*/
drop table student;           /*删除表*/
drop database school;       /*删除数据库*/
           

2、数据操纵语言

insert into student values("张三", "t",87.5);
insert into student values(null,"张三","t",87.5);
//insert into student (name,sex,score) values("张三","t",87.5);
 select * from student;
 insert into student values(null,"李四","男",89);
alter table student modify sex char(2);
insert into student values(null,"李四","男",89);
select * from student;
           
update student set sex ="女";
select * from student;
 update student set sex="男" where id=1;
select * from student;
 update  student set name="王五" ,score=100 where id=2;
select * from student;
delete from student where name="王五";
select * from student;
delete from student;
select * from student;
           

3、数据查询语言(select语句)

select * from student;
select  id,name,score from student;
select * from student where id<5 and sex=“男”;
select count(*) from student ;
select  max(score) from student;
select id ,name,score from student  order by score desc;
select * from stu where name like "张%";
           

4、更改表结构语句

alter table student add birth date;
insert into student values(null,"赵六","男",100, now() );
insert into student values(null,"赵六","男",100, "1980-12-23");

alter table student change birth birthday date ;
alter table student modify sex char(4) not null ;
alter table student modify sex  char(2) after birthday;

alter table student rename as stu;
alter table stu drop birthday;
           

5、多表查询和外键关联

create table person(  id int primary key,   name varchar(6), sex char(2), age int(10)  );

insert into person values(1,"张三","男",45);
insert into person values(2,"李四","男",32);
insert into person values(3,"王五","女",32);
 
create table pet(
 id int  auto_increment ,
 name varchar(6),
 masterid int,
 primary key(id),
 constraint fk foreign key (masterid) references person(id)
 );
           
insert into pet (name,masterid) values("happy",1);
insert into pet (name,masterid) values("lucky",1);
…………
select * from person p1,pet p2 where p1.id=p2.masterid;
select * from person p1,pet p2 where p1.id=p2.masterid and p1.id=1;

alter table pet drop foreign key fk;
alter table pet add  constraint fk foreign key (masterid) references person(id) on delete cascade on update cascade;
 update person set id=6 where id=2;
 delete from person where id=6;
           

6、分页语句

select * from table limit (start-1)*limit,limit; 
其中start是页码
limit是每页显示的条数。
           

导入导出

1、命令行操作

    导入

        方法1:mysql>source d:\dbname.sql

        方法2:mysql -u root -p 数据库名 < dbname.sql

    导出

        导出整个数据库

                mysqldump -u root -p 数据库名 > dbname.sql

        只导出一个表

                mysqldump -u root -p 数据库名 表名> dbname.sql

2、图形界面操作

    Navicat

        导入:运行SQL文件

        导出:转储SQL文件