Mysql的概念
多張表形成一個庫,多個庫交給數據庫服務器管理(如mysql服務器),一台服務器下有多個庫,一個庫下有多張表,表有多行多列的數據,作為web開發程序猿與表打交道比較多(增刪改查)
1.服務器是不是mysql呢?
答:對於數據庫存儲數據來說國際上有sql標准,如列類型、sql語法等是有ISO標准的。很多軟件開發商遵守sql標准來開發一套軟件用來存儲和管理數據。這套軟件就可以稱為數據庫管理系統,就好比看網頁可以用火狐,IE,谷歌。
管理數據可以用mysql,oracle,IBM DB2,sqlite,postgresql,這些軟件都能夠用來管理數據,數據庫大體上要遵循sql標准,但未必100%遵循,各廠商產品可能對sql標准的執行有微小差異,比如mysql就沒有全連接 full join。 沒有sql server中的top N這種方法,就好像html有w3c標准來約束,但各瀏覽器也有解析不兼容的地方,但是少數。
2.為什么選用mysql(3306端口)
答:mysql和linux php apache配合緊密。LAMP架構。
- mysql開源免費。
- Postgresql
- 能完成事務類型的表--innodb類型的表
注:事務指的是是指作為單個邏輯工作單元執行的一系列操作,要么完全地執行,要么完全地不執行。 比如銀行轉賬,要么成功要么不成功,事物的耦合性比較高(事物的統一性,原子性)
3.連接成功后,命令行黑窗口和mysql服務器是什么關系?
答:客戶端client-->服務端server的關系,就好像你的瀏覽器與-->163網站的服務器的關系一樣
4.還有沒有其他mysql客戶端?
答:有nvcat、mysqlfront、phpMyAdmin
5.Mysql基本語句:
Mysql -uusername -ppasswrd
6.當連接上服務器后,我們首先面對的是?
答:首先面對的是庫,庫有一個或者多個,因此我們想對表/行操作的話,得先選庫
7.基本的執行思路
如果不知道有哪些庫,想查看一下所有的庫:show database;選庫:Use 庫名;當選完庫之后,我們面對的是表;查看庫下面的所有表:show tables;
8.如何創建數據庫以及數據庫基本操作
自己創建一個庫:create database 數據庫名字[charset 字符集],如:create database test utf8;
刪除一個數據庫:drop database 數據庫名
數據庫改名:Mysql中表可以改名,database不能改名,PhpMyAdmin似乎有這個功能,他是先建立新庫,把所有的表復制到新庫,再刪舊庫完成的。
當選了庫之后,我們面對的是表,查看下面的所有表show tables;
簡單的創建表語句:
create table stu(snum int, sname varchar(10))engine myisam charset utf8;
engine是指表引擎,和性能特點相關。
刪除表:drop table 表名
改表名:rename table 舊表名 to 新表名
insert into test values(1,’haha’),(2,’hehe’), (3,’xixi’);
查看表內容:select * from stu;
清空表數據:truncate 表名;
Truncate和delete區別:在於truncate 相當於刪表再重建一張同樣結構的表,操作后得到一張全新的表,而delete 是從刪除所有的層面來操作的。truncate 相當於把test表扔了重畫一張,delete相當於用橡皮把stu表的數據擦掉。如果決定全清空,truncate 更快。
如果表中數據亂碼咋辦:告訴服務器,客戶端使用的GBK編碼
set names gbk;
tee D:\1019.sql這句話意思是把敲的sql及結果都輸出到一個sql文件里。
create table class(id int primary key auto_increment, sname varchar(10) not null default ’’,gender char(1) not null default ’’,company varchar(20) not null default ’’,salary decimal(6,2) not null default 0.00,fanbu smallint not null default 0)engine myisam charset utf8;
注意:default后面必須空格
查看表結構:desc class
列變化表結構變化