1、创建、显示数据库 create database databasename; show databases; 2、使用数据库 use databasename; 3、显示表格 show tables; 4、创建表 create table article ( id int primary key auto_increment, pid int, rootid int, title varchar(255), cont text, pdate datetime, isleaf int ); //auto_increment表示自增字段 5、增加字段 alter table article add (title1 varchar(255)); 6、修改字段 alter table article modify id int(4); 7、删除表中列 alter table article drop column title1; 8、删除表 drop table article; 9、执行本地SQL脚本 打开MYSQL COMMAND: \. e:\\bbs.sql 这里我把bbs.sql放在e盘根目录下。 命令注意:是\.而不是.\,另外:最后不需加";"号。 在MYSQL中有时利用MYSQL FONT插入时会导致插入的中文变成?号,但采用这种方法及直接在命令提示符下插入时则不会。 内容如下: create database bbs; use bbs; create table article ( id int primary key auto_increment, pid int, rootid int, title varchar(255), cont text, pdate datetime, isleaf int ); insert into article values (null, 0, 1, '蚂蚁大战大象', '蚂蚁大战大象', now(), 1); insert into article values (null, 1, 1, '大象被打趴下了', '大象被打趴下了',now(), 1); insert into article values (null, 2, 1, '蚂蚁也不好过','蚂蚁也不好过', now(), 0); insert into article values (null, 2, 1, '瞎说', '瞎说', now(), 1); insert into article values (null, 4, 1, '没有瞎说', '没有瞎说', now(), 0); insert into article values (null, 1, 1, '怎么可能', '怎么可能', now(), 1); insert into article values (null, 6, 1, '怎么没有可能', '怎么没有可能', now(), 0); insert into article values (null, 6, 1, '可能性是很大的', '可能性是很大的', now(), 0); insert into article values (null, 2, 1, '大象进医院了', '大象进医院了', now(), 1); insert into article values (null, 9, 1, '护士是蚂蚁', '护士是蚂蚁', now(), 0); 10、主键与外键 create table dept ( depno int primary key, dname varchar(20) ); create table emp ( empno int primary key, empname varchar(20), depno int, foreign key (depno) references dept(depno) ); 11、返回多少行limit select * from article limit 0,10; 返回article表中第一行开始的10行数据 LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。 参数必须是一个整数常量。 如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1): 如我要返回第10行到第20行的数据: select * from article limit 9,10; 可理解为从第10条开始(9表示的是第10条) 包括第10条。。取10条数据。 也可理解为从第9条往后(不包括第9条)取10条数据。 如下: SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15 注意:以下测试过现在不行,不知道以前是不是可以。 //为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1: //mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last. 如果只给定一个参数,它表示返回最大的记录行数目: mysql> SELECT * FROM table LIMIT 5; //检索前 5 个记录行 换句话说,LIMIT n 等价于 LIMIT 0,n。 12、now()表当前日期 日期处理: select date_format(now(),'%y-%m-%d %h:%i:%s'); 13、查看MYSQL中表创建时使用的编码:show create table article; 如果后台是UTF8则在命令行输入命令前应:set names gbk 注意my.ini中的配置:有两个character-set的地方: [mysql] default-character-set=gb2312 #指的是在命令行输入的sql命令的编码,这个设置为GBK输入SQL命令时不用再输入SET NAMES GBK。 。。。。 # The default character set that will be used when a new schema or table is # created and no character set is defined default-character-set=gb2312 #数据库存储数据所采用的编码,这个可以改为UTF8 配置更改后重启服务。
JDBC测试:
import java.sql.*; public class DB { public static Connection getConnection(){ Connection con=null; try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql://localhost:3306/bbs","root","sys833199"); }catch(ClassNotFoundException e){ System.out.println("数据库驱动未找到,详情为"+e); }catch(SQLException e){ System.out.println("连接数据库出错,详情为"+e); } return con; } public static Statement createStatement(Connection con){ Statement st = null; try{ st = con.createStatement(); }catch(SQLException e){ System.out.println("创建会话出错"+e); } return st; } public static ResultSet executeQuery(Statement st,String sql){ ResultSet rs = null; try { rs = st.executeQuery(sql); } catch (SQLException e) { System.out.println("返回结果集出错"+e); } return rs; } public static void executeUpdate(Statement st,String sql){ try { st.executeUpdate(sql); } catch (SQLException e) { System.out.println("返回结果集出错"+e); } } public static void close(Connection con){ if(con!=null){ try { con.close(); } catch (SQLException e) { System.out.println("连接关闭出错"+e); } } } public static void close(Statement st){ if(st!=null){ try { st.close(); } catch (SQLException e) { System.out.println("会话关闭出错"+e); } } } public static void close(ResultSet rs){ if(rs!=null){ try { rs.close(); } catch (SQLException e) { System.out.println("返回结果集关闭出错"+e); } } } }
附件为测试项目