=======================================================html
CREATE DATABASE 数据库名;
mysql> create database learning;
CREATE TABLE table_name (column_name column_type);
mysql -u root -p
+回车+输入密码show databases;
use 数据库名;
,例如use learning;
select database();
show tables;
desc 表名;
,例如desc houses;
=======================================================mysql
SELECT column_list/*要查询的列名称*/
sql
FROM table_list /*要查询的表名称*/
-- 可能从多张表查询,而后合并输出数据库
WHERE condition /*行条件*/
函数
GROUP BY grouping_columns /*对结果分组*/
学习
HAVING condition /*分组后的行条件*/
3d
ORDER BY sorting_columns /*对结果排序*/
日志
LIMIT offset_set, row_coun t /*结果限定显示行数*/
-- 数据太多时,只显示指定部分的数据code
;
htm
注意:注释放置的位置任意。
concat(字段名1 "分隔符", 字段名2)
select concat(name, "|", house_location) from houses;
=======================================================
语法:INSERT INTO table_name (field1,field2,...,fieldN) VALUES (value1,value2,...,valueN);
示例:insert into houses (name,house_location,purchaseing_year) values ('甲','天河',1997);
注意:后面的数值要与前面的字段名一一对应好,不然就插入到错误的位置了。
语法:INSERT INTO table_name select column1,...columnN from table_name2 WHERE XXX;
示例:INSERT INTO houses2 select name,house_location,purchaseing_year from houses WHERE name = 'xx';
注意:后面的部分仍然是"select-from-where"组合
语法:DELETE FROM table_name WHERE xxx;
示例:delete from houses;
语法:UPDATE table_name SET field1=new-value1,field2=new-value2 WHERE xxx;
示例:update houses set name='甲1';
=======================================================
建库:CREATE DATABASE 数据库名;
建表:CREATE TABLE table_name (column_name column_type);
查询库下的表:show tables;
查看表结构:desc table_name;
删除某表的指定字段:ALTER TABLE table_name DROP field_i;
添加字段到某表-法1-添加到第一个:ALTER TABLE table_name ADD field_i field_type INT FIRST;
添加字段到某表-法2-添加到某字段后:ALTER TABLE table_name ADD field_i field_type INT AFTER field_j;
修改字段类型:ALTER TABLE table_name MODIFY field_name type;
修改字段名称:ALTER TABLE table_name CHANGE old_field_name new_fiele_name;
同时修改字段名和字段类型:ALTER TABLE table_name CHANGE old_field_name new_fiele_name type;
ALTER TABLE table_name RENAME TO new_name;
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同,均用来删除表中的所有行,但 TURCATE TABLE 速度更快,且使用的系统和事务日志资源少。
TRUNCATE TABLE 删除表中的全部行,但表结构及其列、约束、索引等保持不变。
对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。
TRUNCATE TABLE 不能用于参与了索引视图的表。
若是有 ROLLBACK 语句, DELETE 操做将被撤销(autocommit-off时),但 TRUNCATE 不会撤销。
TRUNCATE更快,不改变表结构,不会rollback,不能用于由 FOREIGN KEY 约束引用的表,不能用于不能用于参与了索引视图的表。
delete更慢,不改变表结构,能够回滚。
注意:delete删除须要from -- delete from table_name;
, 而truncate直接加表名便可 -- truncate table_name;
删除数据库:drop database <数据库名>;
删除表:drop table <表名>;
=======================================================
grant权限on数据库对象to用户
示例1:grant select on learning.* to user@'%';
示例2:grant insert on learning.* to user@'%';
%
: 百分号表示全部的IP地址均可以使用这样一种权限。
ALL:容许作任何事(和root同样)
USAGE:只容许登陆,其余什么也不容许作(默认享有)
新建用户并赋予权限和密码:CREATE USER john1@'%'IDENTIFIED BY '123';
%
表示用户能够从任意IP地址登陆,'123'表示登陆密码。首先,须要对用户赋予权限
grand select,insert,update,delete on learning.* to john1@'%';
查询用户的权限
show grand for john1;
ROLLBACK;
显式提交:用commit命令直接完成的提交。
COMMIT;
隐式提交:用SQL命令间接完成的提交。
自动提交:autocommit为on时,插入、删除、修改语句执行后,系统将自动提交
commit
以后,才能在其余cmd窗口中同步修改。