1、SELECT:查询出数据,也可用于变量赋值
成都创新互联公司服务项目包括阿荣网站建设、阿荣网站制作、阿荣网页制作以及阿荣网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,阿荣网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到阿荣省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
2、CREATE:创建
3、DROP:删除
4、ALTER:修改
5、INSERT:插入
6、UPDATE:更新
7、DELETE:删除
8、Grant:授权
9、revoke:回收权限
扩展资料
语法
SQL语言分成了几种要素,包括:
1、子句,是语句和查询的组成成分。(在某些情况下,这些都是可选的。)[14]
2、表达式,可以产生任何标量值,或由列和行的数据库表
3、谓词,给需要评估的SQL三值逻辑(3VL)(true/false/unknown)或布尔真值指定条件,并限制语句和查询的效果,或改变程序流程。
4、查询,基于特定条件检索数据。这是SQL的一个重要组成部分。
5、语句,可以持久地影响纲要和数据,也可以控制数据库事务、程序流程、连接、会话或诊断。
6、SQL语句也包括分号(";")语句终结符。尽管并不是每个平台都必需,但它是作为SQL语法的标准部分定义的。
7、无意义的空白在SQL语句和查询中一般会被忽略,更容易格式化SQL代码便于阅读。
标准化
各种数据库的SQL方言通常不可移植,特别是在日期时间语法、字符串连接、NULL、比较的大小写敏感方面。只有PostgreSQL与Mimer SQL努力遵从标准。Oracle数据库的DATE行为如同DATETIME,缺少TIME type)。
SQL在1986年被ANSI标准化,1987年被ISO标准化。由ISO/IEC JTC 1, Information technology, Subcommittee SC 32, Data management and interchange维护。标准名称通常为如下模式: ISO/IEC 9075-n:yyyy Part n: title。
!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
""
hibernate-configuration
session-factory
property name="hibernate.connection.url"jdbc:mysql://127.0.0.1/lianxi/property
property name="hibernate.connection.driver_class"com.mysql.jdbc.Driver/property
property name="hibernate.connection.username"root/property
property name="hibernate.connection.password"root/property
property name="hibernate.dialect"org.hibernate.dialect.MySQLDialect/property
property name="hibernate.show_sql"true/property
property name="hibernate.hbm2ddl.auto"update/property
mapping resource="com/bjsxt/crm/model/User.hbm.xml"/
mapping resource="com/bjsxt/crm/model/ContactPerson.hbm.xml"/
mapping resource="com/bjsxt/crm/model/Customer.hbm.xml"/
mapping resource="com/bjsxt/crm/model/DataDictionary.hbm.xml"/
/session-factory
/hibernate-configuration
上面是hibernate.cfg.xml 的配置,需要注意的就是把实体映射类的配置文件都引用过来。
还有提点需要理解的是 hibernate.hbm2dll.auto的配置:
validate 加载hibernate时,验证创建数据库表结构
create 每次加载hibernate,重新创建数据库表结构,这就是导致数据库表数据丢失的原因。
create-drop 加载hibernate时创建,退出是删除表结构
update 加载hibernate自动更新数据库结构
在本机开发调试初始化数据的时候可以选择create、update等。
但是网站发布正式版本的时候,对数据库现有的数据或表结构进行自动的更新是很危险的。 此时此刻应该由DBA同志通过手工的方式进行后台的数据库操作。
hibernate.hbm2ddl.auto的值建议是“none”或“validate”。“validate”应该是最好的选择:这样spring在加载之初,如果model层和数据库表结构不同,就会报错,这样有助于技术运维预先发现问题。
有了自己的实体类和相应的映射文件后,就可可以通过下面的这个方法由实体类生成数据库的表了,代买如下;
[java] view plaincopyprint?
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
public class ExportDB {
public static void main(String[] args) {
//读取hibernate.cfg.xml文件
Configuration cfg = new Configuration().configure();
SchemaExport export = new SchemaExport(cfg);
export.create(true, true);
}
}
下面是一些数据库方言,在这里列出方便查找使用
//参照表
DB2
org.hibernate.dialect.DB2Dialect
DB2 AS/400
org.hibernate.dialect.DB2400Dialect
DB2 OS390
org.hibernate.dialect.DB2390Dialect
PostgreSQL
org.hibernate.dialect.PostgreSQLDialect
MySQL
org.hibernate.dialect.MySQLDialect
MySQL with InnoDB
org.hibernate.dialect.MySQLInnoDBDialect
MySQL with MyISAM
org.hibernate.dialect.MySQLMyISAMDialect
Oracle (any version)
org.hibernate.dialect.OracleDialect
Oracle 9i/10g
org.hibernate.dialect.Oracle9Dialect
Sybase
org.hibernate.dialect.SybaseDialect
Sybase Anywhere
org.hibernate.dialect.SybaseAnywhereDialect
Microsoft SQL Server
org.hibernate.dialect.SQLServerDialect
SAP DB
org.hibernate.dialect.SAPDBDialect
Informix
org.hibernate.dialect.InformixDialect
HypersonicSQL
org.hibernate.dialect.HSQLDialect
Ingres
org.hibernate.dialect.IngresDialect
Progress
org.hibernate.dialect.ProgressDialect
Mckoi SQL
org.hibernate.dialect.MckoiDialect
Interbase
org.hibernate.dialect.InterbaseDialect
Pointbase
org.hibernate.dialect.PointbaseDialect
FrontBase
org.hibernate.dialect.FrontbaseDialect
Firebird
org.hibernate.dialect.FirebirdDialect
Hibernate与各种数据库连接的配置
1. Oracle连接配置
Oracler数据库的hibernate在配置文件中配置。
连接部分
!--驱动程序--
property name="connection.driver_class"oracle.jdbc.driver.OracleDriver/property
!-- JDBC URL --
property name="connection.url"jdbc:oracle:thin:@localhost:1521:dbname/property
!--数据库用户名--
property name="connection.username"test/property
!--数据库密码--
property name="connection.password"test/property
上例使用的驱动类为:oracle.jdbc.driver.OracleDriver,开发人员需要将相关的jar包(ojdbc14.jar)加入到classpath中。
2. MySql连接配置
MySql数据库的hibernate连接设置,在hibernate.cfg.xml文件中
hibernate-configuration
session-factory
!--各属性的配置--
!—为true表示将Hibernate发送给数据库的sql显示出来 --
property name="show_sql"true/property
!-- SQL方言,这边设定的是MySQL --
property name="dialect"net.sf.hibernate.dialect.MySQLDialect/property
!--一次读的数据库记录数 --
property name="jdbc.fetch_size"50/property
!--设定对数据库进行批量删除 --
property name="jdbc.batch_size"30/property
!--驱动程序--
property name="connection.driver_class"com.mysql.jdbc.Driver/property
!-- JDBC URL --
property name="connection.url"jdbc:mysql://localhost/dbname?
characterEncoding=gb2312/property
!--数据库用户名--
property name="connection.username"root/property
!--数据库密码--
property name="connection.password"root/property
!—映射文件 --
mapping resource="com/amigo/pojo/User.hbm.xml"/
mapping resource="com/amigo/pojo/Org.hbm.xml"/
/session-factory
/hibernate-configuration
上面使用的驱动类是com.mysql.jdbc.Driver.需要将MySql的连接器jar包(eg. mysql-connector-java-Dbname为数据库名字5.0.4-bin.jar)加入到classpath中。
3. Sql Server连接配置
Sql Server数据库的hibernate在配置文件中配置。
连接部分
!--驱动程序--
property name="connection.driver_class"net.sourceforge.jtds.jdbc.Driver/property
!-- JDBC URL --
property
name="connection.url"jdbc:jtds:sqlserver://localhost:1433;DatabaseName=dbname/property
!--数据库用户名--
property name="connection.username"sa/property
!--数据库密码--
property name="connection.password"/property
上例的驱动类使用的是jtds的驱动类,因此读者需要将jtds的jar包(eg. jtds-1.2.jar)加入到classpath中
4. DB2连接配置
DB2数据库的hibernate在配置文件中配置。
连接部分
!--驱动程序--
property name="connection.driver_class" com.ibm.db2.jdbc.app.DB2Driver/property
!-- JDBC URL --
property
name="connection.url" jdbc:db2://localhost:5000/sample /property //sample为数据库名
!--数据库用户名--
property name="connection.username"admin/property
!--数据库密码--
property name="connection.password"/property
上例使用的驱动类为:com.ibm.db2.jdbc.app.DB2Driver,开发人员需要将相关的jar包(db2jcc.jar)加入到classpath中。
5.sybase连接配置
sybase数据库的hibernate在配置文件中配置。
连接部分
!--驱动程序--
property name="connection.driver_class"com.sybase.jdbc.SybDrive/property
!-- JDBC URL --
property
name="connection.url" jdbc:sybase:Tds:localhost:5007/myDB/property ;//myDB为数据库名
!--数据库用户名--
property name="connection.username"userid/property
!--数据库密码--
property name="connection.password"user_password/property
上例使用的驱动类为:com.sybase.jdbc.SybDrive,开发人员需要将相关的jar包(jconn3.jar)加入到classpath中。
6. informix连接配置
informix数据库的hibernate在配置文件中配置。
连接部分
!--驱动程序--
property name="connection.driver_class"com.informix.jdbc.IfxDrive/property
!-- JDBC URL --
property
name="connection.url"jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver /property ;//myDB为数据库名
!--数据库用户名--
property name="connection.username"testuser/property
!--数据库密码--
property name="connection.password"testpassword/property
上例使用的驱动类为:com.informix.jdbc.IfxDrive,开发人员需要将相关的jar包(ifxjdbc.jar)加入到classpath中。
7.PostgreSQL连接配置
PostpreSQL数据库的hibernate在配置文件中配置。
连接部分
!--驱动程序--
property name="connection.driver_class"org.postgresql.Driver/property
!-- JDBC URL --
property
name="connection.url"jdbc:postgresql://localhost/myDB/property;//myDB为数据库名
!--数据库用户名--
property name="connection.username"myuser/property
!--数据库密码--
property name="connection.password"mypassword/property
上例使用的驱动类为:com.informix.jdbc.IfxDrive,开发人员需要将相关的jar包(postgresql-8.1-405.jdbc3)加入到classpath中。
8.access连接配置
access数据库的hibernate在配置文件中配置。
连接部分
!--驱动程序--
property name="connection.driver_class"sun.jdbc.odbc.JdbcOdbcDriver/property
!-- JDBC URL --
property
name="connection.url"jdbc:odbc:Driver={MicroSoft..Access..Driver(*.mdb)};DBQ="+application.getRealPath("/Data/ReportDemo.mdb")/property ;//myDB为数据库名
!--数据库用户名--
property name="connection.username"myuser/property
!--数据库密码--
property name="connection.password"mypassword/property
postgresQL你要看看是否支持uuid,如果不支持,你就手动生成,应该是主键的事
hibernate
方言
property name="dialect"
org.hibernate.dialect.Oracle9Dialect
/property
1、异:各个数据库的物理结构和逻辑结构都不尽相同,这导致各种数据库的管理方法有很大差异;各个数据库都对sql2和sql3规定的sql标准语言进行了扩展,形成了自己的开发语言,也就是方言。很多方言的差异还是蛮大的。
2、同:你说的每种数据库都是关系型数据库,它们都尽量向SQL3标准靠拢。包括数据库的安全体系、三级结构两级映像、数据完整性、事务的隔离等等等等。
3、使用范围:大型商业数据库的安全性、稳定性高,对产品服务能力也比较强。数据量大、安全要求高时一般都是用这种数据库,Oracle、DB2、SqlServer是其代表;开源数据库一般都是免费的,但是和商业数据库相比,其开发、管理工具都比较难用,能获得的技术支持也比较少,数据库在运行中出现问题时难以获得良好满意的服务,或者服务的费用很高,对于数据量不大,数据安全性要求不是很高的场合,可以使用这些数据库,因为在竞标时减少几十万的数据库成本会给自己带来不小的优势,PostgreSQL、MySQL、Firebird是其代表;至于access,是个小型桌面数据管理系统,当然,也可以做小型网站的数据库管理系统。