怎么往mysql表里添加數據
1、我們打開Mysql命令行編輯器,連接Mysql數據庫; 2、使用我們要操作的數據庫,我們可以先顯示一下數據庫中的表; 3、顯示一下表結構,了解一下表中的列; 4、向表插入數據,insert into 表名 (列名) values (值); 5、查詢表,可以看到我們插入的數據,select * from 表名; 6、可以再插入一個數據,顯示一下。
擴展資料:結構化查詢語言(Structured Query Language)簡稱SQL(發音:/?es kju? ?el/ "S-Q-L"),是一種特殊目的的編程語言,是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統;同時也是數據庫腳本文件的擴展名。 結構化查詢語言是高級的非過程化編程語言,允許用戶在高層數據結構上工作。
它不要求用戶指定對數據的存放方法,也不需要用戶了解具體的數據存放方式,所以具有完全不同底層結構的不同數據庫系統, 可以使用相同的結構化查詢語言作為數據輸入與管理的接口。結構化查詢語言語句可以嵌套,這使它具有極大的靈活性和強大的功能。
參考資料:百度百科 SQL。
如何提升update語句的性能(MySQL)當記錄數有20萬或更 - 愛問知識
update 。
select 。 from 。
where 。 你的瓶頸是在查詢子句,并不是update的問題,優化完查詢執行自然會上去。
-------------------------- 優化SQL查詢的原則如下: 1、使用索引來更快地遍歷表。 缺省情況下建立的索引是非群集索引,但有時它并不是最佳的。
在非群集索引下,數據在物理上隨機存放在數據頁上。合理的索引設計要建立在 對各種查詢的分析和預測上。
一般來說: a.有大量重復值、且經常有范圍查詢( > , =,。
mysql怎么添加索引sql語句
1.索引作用 在索引列上,除了上面提到的有序查找之外,數據庫利用各種各樣的快速定位技術,能夠大大提高查詢效率。
特別是當數據量非常大,查詢涉及多個表時,使用索引往往能使查詢速度加快成千上萬倍。例如,有3個未索引的表t1、t2、t3,分別只包含列c1、c2、c3,每個表分別含有1000行數據組成,指為1~1000的數值,查找對應值相等行的查詢如下所示。
SELECT c1,c2,c3 FROM t1,t2,t3 WHERE c1=c2 AND c1=c3 此查詢結果應該為1000行,每行包含3個相等的值。在無索引的情況下處理此查詢,必須尋找3個表所有的組合,以便得出與WHERE子句相配的那些行。
而可能的組合數目為1000*1000*1000(十億),顯然查詢將會非常慢。如果對每個表進行索引,就能極大地加速查詢進程。
利用索引的查詢處理如下。(1)從表t1中選擇第一行,查看此行所包含的數據。
(2)使用表t2上的索引,直接定位t2中與t1的值匹配的行。類似,利用表t3上的索引,直接定位t3中與來自t1的值匹配的行。
(3)掃描表t1的下一行并重復前面的過程,直到遍歷t1中所有的行。在此情形下,仍然對表t1執行了一個完全掃描,但能夠在表t2和t3上進行索引查找直接取出這些表中的行,比未用索引時要快一百萬倍。
利用索引,MySQL加速了WHERE子句滿足條件行的搜索,而在多表連接查詢時,在執行連接時加快了與其他表中的行匹配的速度。2. 創建索引 在執行CREATE TABLE語句時可以創建索引,也可以單獨用CREATE INDEX或ALTER TABLE來為表增加索引。
* TABLE ALTER TABLE用來創建普通索引、UNIQUE索引或PRIMARY KEY索引。ALTER TABLE table_name ADD INDEX index_name (column_list) ALTER TABLE table_name ADD UNIQUE (column_list) ALTER TABLE table_name ADD PRIMARY KEY (column_list) 其中table_name是要增加索引的表名,column_list指出對哪些列進行索引,多列時各列之間用逗號分隔。
索引名index_name可選,缺省時,MySQL將根據第一個索引列賦一個名稱。另外,ALTER TABLE允許在單個語句中更改多個表,因此可以在同時創建多個索引。
* INDEX CREATE INDEX可對表增加普通索引或UNIQUE索引。CREATE INDEX index_name ON table_name (column_list) CREATE UNIQUE INDEX index_name ON table_name (column_list) table_name、index_name和column_list具有與ALTER TABLE語句中相同的含義,索引名不可選。
另外,不能用CREATE INDEX語句創建PRIMARY KEY索引。3.索引類型 在創建索引時,可以規定索引能否包含重復值。
如果不包含,則索引應該創建為PRIMARY KEY或UNIQUE索引。對于單列惟一性索引,這保證單列不包含重復的值。
對于多列惟一性索引,保證多個值的組合不重復。PRIMARY KEY索引和UNIQUE索引非常類似。
事實上,PRIMARY KEY索引僅是一個具有名稱PRIMARY的UNIQUE索引。這表示一個表只能包含一個PRIMARY KEY,因為一個表中不可能具有兩個同名的索引。
下面的SQL語句對students表在sid上添加PRIMARY KEY索引。ALTER TABLE students ADD PRIMARY KEY (sid)4. 刪除索引 可利用ALTER TABLE或DROP INDEX語句來刪除索引。
類似于CREATE INDEX語句,DROP INDEX可以在ALTER TABLE內部作為一條語句處理,語法如下。DROP INDEX index_name ON talbe_name ALTER TABLE table_name DROP INDEX index_name ALTER TABLE table_name DROP PRIMARY KEY 其中,前兩條語句是等價的,刪除掉table_name中的索引index_name。
第3條語句只在刪除PRIMARY KEY索引時使用,因為一個表只可能有一個PRIMARY KEY索引,因此不需要指定索引名。如果沒有創建PRIMARY KEY索引,但表具有一個或多個UNIQUE索引,則MySQL將刪除第一個UNIQUE索引。
如果從表中刪除了某列,則索引會受到影響。對于多列組合的索引,如果刪除其中的某列,則該列也會從索引中刪除。
如果刪除組成索引的所有列,則整個索引將被刪除。5.查看索引 mysql> show index from tblname; mysql> show keys from tblname; · Table 表的名稱。
· Non_unique 如果索引不能包括重復詞,則為0。如果可以,則為1。
· Key_name 索引的名稱。 · Seq_in_index 索引中的列序列號,從1開始。
· Column_name 列名稱。 · Collation 列以什么方式存儲在索引中。
在MySQL中,有值'A'(升序)或NULL(無分類)。 · Cardinality 索引中唯一值的數目的估計值。
通過運行ANALYZE TABLE或myisamchk -a可以更新。基數根據被存儲為整數的統計數據來計數,所以即使對于小型表,該值也沒有必要是精確的。
基數越大,當進行聯合時,MySQL使用該索引的機會就越大。 · Sub_part 如果列只是被部分地編入索引,則為被編入索引的字符的數目。
如果整列被編入索引,則為NULL。 · Packed 指示關鍵字如何被壓縮。
如果沒有被壓縮,則為NULL。 · Null 如果列含有NULL,則含有YES。
如果沒有,則該列含有NO。 · Index_type 用過的索引方法(BTREE, FULLTEXT, 。
一句簡單的MySql插入語句怎么寫
insert into 表名 values(default,"名字","2011-04-15 12:22:25"); //default可以換成null------------------------------ insert into 表名 (name,datetime) values("名字","2011-04-15 12:22:25"); 使用SQL語法大寫,增加可讀性(小寫部分就是自己數據庫寫的表/字段嘍,具體你懂得。)
。創建數據庫:CREATE DATABASE mysql_db; 刪除數據庫:DROP DATABASE mysql_db; 查看數據庫:SHOW DATABASES; 使用數據庫:USE mysql_db; 查看數據庫中的表:SHOW TABLES; 創建表:CREATE TABLE user( id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,username VARCHAR(20) UNIQUE NOT NULL,sex ENUM('1','2','3') NOT NULL DEFAULT 3); 查看表結構:①SELECT COLUMN FROM user; ②DESC user; 查看表創建語句(可查看各種自動生成的名字):SHOW CREATE TABLE user; 插入表記錄:①INSERT INTO user(id,username,sex) VALUES(1,'Tom',1); ②INSERT user(username) VALUES ('John'); 查找表:SELECT * FROM user; 刪除表中的數據(保留表結構):TRUNCATE TABLE user; 將查詢結果寫入新表:INSERT [INTO] privinces(sex) SELECT sex FROM user GROUP BY sex;(若表中有數據,請不要隨意更改表名、列名) 修改表名:①ALTER TABLE user RENAME [AS|TO] users; ②RENAME TABLE user TO users; 添加單列:ALTER TABLE user ADD [COLUMN] age SMALLINT NOT NULL UNSIGNED DEFUALT 18 [FIRST | AFTER sex]; 刪除列:ALTER TABLE user DROP sex[,DROP age]; 修改列名稱和定義:ALTER TABLE user CHANGE [COLUMN] age a_ge TINYINT NOT NULL UNSIGNED AFTER id; 單表更新:UPDATE user SET age = age + 5,sex = 1 [WHERE id = 2]; 單表刪除:DELETE FROM user [WHERE id =3]; 單(多)表連接:SELECT *,*me FROM user AS p LEFT JOIN user AS s ON * = *; 單(多)表刪除:DELETE * FROM user [AS] u1 LEFT JOIN ( SELECT * FROM user AS p LEFT JOIN user AS s ON * =* GROUP BY * HAVING COUNT(*)>1 ) [AS] u2 ON * = * WHERE * > *; 查找記錄:SELETE select_expr [,select_expr] [ FROM table_references [WHERE where_condition] [GROUP BY {col_name|position}[ASC|DESC],。
] //查詢結果分組 [HAVING where_condition] //設置分組條件 [ORDER BY {col_name|expr|position}[ASC|DESC]] //對結果排序 LIMIT {[offset,]row_count|row_count OFFSET offset}]//限制記錄數量 ] 記錄為2、3行:SELECT * FROM user LIMIT 1,2; 別名使用(在項目中一般都使用別名)AS alias_name:SELECT id AS uid FROM user AS u ; 子查詢:SELECT AVG(age) FROM user WHERE userid = [ALL|SOME|ANY|[NOT] IN|[NOT] EXISTS](SELECT uid FROM privinces WHERE pname = '河南'); 外鍵約束:(父表為user表,必須先在父表中插入數據,才能在子表中插入數據) CASEADE:從父表中刪除或更新行 且 自動級聯刪除或更新子表中匹配的行;SET NULL:從父表刪除或更新行,并設置子表中的外鍵列為NULL; RESTRICT:拒絕對父表的更新或刪除操作;CREATE TABLE privinces( pid SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,pname VARCHAR(20) NOT NULL ,uid SMALLINT,FOREIGN KEY (uid) REFERENCES user (id) //privinces的字段uid與user表的字段id外鍵約束 ON DELETE CASEADE //刪除時 級聯刪除); 增加主鍵、唯一、外鍵約束:ALTER TABLE privinces ADD [CONSTRAINT uq_pname] UNIQUE(pname); 添加/刪除默認約束:ALTER TABLE privinces ALTER pname {SET DEFAULT literal | DROP DEFAULT}; 刪除主鍵約束:ALTER TABLE privinces DROP PRIMARY KEY; 刪除唯一(索引)約束:(查看約束名字key_name: SHOW INDEXS FROM privinces;) ALTER TABLE privinces DROP {INDEX | KEY} 約束名; 刪除外鍵約束:(查看約束名字:SHOW CREATE TABLE privinces;) ALTER TABLE privinces DROP FOREIGN KEY 約束名; 多表更新:UPDATE 表的參照關系 SET col_name = {[expr | value]}; 表的參照關系:tab1_reference {[INNER|CROSS] JOIN |{LEFT|RIGHT}[OUTER] JOIN} tab2_refenence ON conditional_expr; 內連接:INNER JOIN 左外連接:LEFT JOIN 右外連接:ROGHT JOIN UPDATE user INNER JOIN privinces ON user_privince = pname SET user_privince = pid;//(更新user內連接privince,條件是 user_privince.=pname,設置user_privince=pid) 創建數據表的同時將查詢結果寫入數據表:CREATE TABLE table_name [create_definition, 。] //創建語句的定義 select_statement; //要插入查詢結果的 查詢語句 字符函數:CONCAT()字符連接;CONCAT('I','LOVE','YOU'); CONCAT_WS()使用指定的分隔符進行字符連接;。