天天看點

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檔案