1. 程式人生 > >mysql 數據庫復制表

mysql 數據庫復制表

varchar cat 無密碼登錄 tiny uri 本地登錄 cte 同時 dbo

create table test2 select * from test where 1=2
-- 只復制表結構



INSERT INTO test2 SELECT * FROM test;
-- 上面的表必須存在




-- 復制整張表的數據
create table test2 select * from test




-- create database xxx charset
-- create table xxx (id int,xxxxxx)
-- drop table
-- drop database
-- alter table add/drop/modify/change
-- create user
-- drop user

select id,name from test limit 1,3;
--- 顯示第一行之後的三行

用戶管理

----

定義 :  用戶名+主機域

功能:連接數據庫、管理數據庫對象


連接數據庫:
1、定義用戶:用戶名+主機域, 密碼   
2、定義權限:對不同的對象進行權限(角色)定義

grant   權限     on   權限範圍(對象)    to   用戶  identified by ‘‘;
show grants for oldboy@10.0.0.%;

權限(角色):
select
update
delete
insert
drop
create

ALL 
replication slave

權限範圍:
*.*  所有數據庫對象
oldboy.
* oldboy單庫下所有對象 oldboy.test 單表級別 用戶: repl@localhost repl@10.0.0.53 repl@10.0.0.% repl@10.0.0.5% ----- 要求: 1、用戶只能通過10網段訪問,用戶名為oldboy,密碼為123 2、只能對oldboy數據庫下的對象進行增insert create、改update、查select grant select,insert,update,create on oldboy.* to oldboy@10.0.0.% identified by 123; drop user oldboy@10.0.0.%
---------------- skip-grant-tables 啟動過程中跳過授權表。 /application/mysql/bin/mysqld_safe --skip-grant-tables --skip-networking & 在這中模式啟動情況下: 無密碼登錄 網絡用戶無法登陸 只能本地登錄 和授權有關的命令都不能執行了 grant revoke drop user create user use mysql update user set password=PASSWORD(123456) where user=sys and host=localhost flush privileges; 5.7 無password 需要修改:authentication_string use mysql update user set authentication_string=PASSWORD(123456) where user=sys and host=localhost flush privileges; ----------------- SQL 是用戶用來管理、控制數據庫的專用語言 SQL入門 mysql 1、mysql客戶端接口自帶功能 1、\h 或 help 或 ? 獲取幫助 2、\G 格式化輸出(行轉列) 3、\T 或 tee 記錄操作日誌 tee /tmp/mysql.log 4、\c 或 CTRL+c 退出mysql 5、\s 或 status 查看數據庫狀態信息 6、\. 或 source mysql> source /tmp/world.sql 7、\u 或use use world show databases 看當前所有數據庫的名字 show tables 查看當前use到的數據庫所有的表 show tables from world 查看目標數據庫下的表 8、快捷鍵 上下翻頁 TAB ctrl +C ctrl +L 2、SQL DDL: 數據定義語言 定義範圍: 庫 :名字、特性 表:表名字、列 DDL語句: create database oldboy create table test (id int) 創建庫: CREATE DATABASE db_name CHARACTER SET charset_name COLLATE collation_name 例子 mysql> create database oldboy charset utf8 ; mysql> show create database oldboy; 查詢數據庫定義信息。 修改庫: ALTER DATABASE [db_name] CHARACTER SET charset_name COLLATE collation_name 例子: mysql> alter database oldboy charset gbk; 刪除庫: drop database oldboy; show character set;#找字符集和校對規則. 表定義(列): 表名 列名 列屬性(數據類型、列約束) 創建表: create table test(id int); create table t1(idcard int ,name char(30),sex char(4)); 修改表定義: 修改表名: rename table t1 to test1; alter table test1 rename to people; 修改表結構: alter table people add addr char(40) NOT NULL; 指定添加年齡列到name列後面的位置,示例如下: alter table people add age int(4) after name; 通過下面的命令在第一列添加qq字段。 alter table test add telnum int first; 同時添加多個列定義: alter table people add id int first ,add sex char(4) after name ; 刪除表結構: alter table people drop sex; 修改表定義 alter table people modify name char(20); 修改列名: alter table people change name people_name char(30) ; --------------------------- 總結DDL: create database xxx charset create table xxx (id int,xxxxxx) drop table drop database alter table add/drop/modify/change create user drop user ---------------------------- DCL:數據庫控制語言 grant revoke ----------------------- DML: 數據操縱語言:針對數據行的操作 insert語句: create table oldboy (id int,name varchar(20)); insert into oldboy values(1,oldboy); insert into oldboy values(2,yougboy),(3,youggilr); select * from oldboy; insert into oldboy(name) values(xiaoming); INSERT INTO `test` VALUES (1,oldboy),(2,oldgirl),(3,inca),(4,zuma),(5,kaka); ------------------------------------ create table test like oldboy; insert into oldboy select * from oldboy; ========================== create table test2 select * from test where 1=2 ------------------------------------ update(一定要有where條件) update test set name=oldboy1 WHERE id = 1; delete(一定要有where條件) delete from oldboy where id=1; INSERT INTO `test` VALUES (1,oldboy),(2,oldgirl),(3,inca),(4,zuma),(5,kaka); 生產中的偽刪除 alter table test add state tinyint(2) not null default 1; update test set state=1; 正常顯示: select * from test where id=1; update test set state=0 where name=oldboy; mysql> select * from test where state=1; +----+---------+-------+ | id | name | state | +----+---------+-------+ | 2 | oldgirl | 1 | | 3 | inca | 1 | | 4 | zuma | 1 | | 5 | kaka | 1 | mysql> select * from test; +----+---------+-------+ | id | name | state | +----+---------+-------+ | 1 | oldboy | 0 | | 2 | oldgirl | 1 | | 3 | inca | 1 | | 4 | zuma | 1 | -------------------------------- DQL: select from select user,password ,host from mysql.user where user=sys; select user,password ,host from mysql.user where user like sy%; select * from oldboy.test; select id,name from oldboy.test; select id,name from test where id=2; select id,name from test where name=oldgirl; select id,name from test where id>2; select id,name from test where id>2 and id<4; select id,name from test where id>2 or id<4; select id,name from test; select id,name from test order by id asc; select id,name from test order by id desc; select id,name from test limit 1,3; #第一行之後取三行 select database(); select user();

mysql 數據庫復制表